一般使用线程都想需要实现Runnable接口或继承Thread类,但是有时我们没必要去声明一个类来达到使用线程的目的 ,随时随地声明你的线程。code below:
public void generateThread()
{
Thread tr = new Thread()
{
public void run()
{
while(true)
{
System.out.println("afsdf");
}
}
};
tr.start();//start the thread
}
jvm钩子的使用:首先需要向jvm注册需要运行的类,必须是一个线程类,当jvm关闭时按照想虚拟机注册的顺序来调用那些已经注册的线程类,可参考javaapi
首先实现一个线程类,例子代码
package cn.com;
public class ShutDownHookTest implements Runnable {
public void run() {
System.out.println("hahah i am running");
}
}
其次想jvm注册该线程类
package cn.com;
public class ShutdownApp {
public static void main(String[] args)
{
Runtime rt = Runtime.getRuntime();
rt.addShutdownHook(new Thread(new ShutDownHookTest()));//register to the jvm
}
}
最后运行程序,会输出hahah i am running,表明钩子已生效
分享到:
相关推荐
它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构之类的问题的关注。 版本 3.x () 单一依赖: Java 8+(脱糖友好) ...
│ 高并发编程第一阶段24讲、线程间通信快速入门,使用wait和notify进行线程间的数据通信.mp4 │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26...
│ 高并发编程第一阶段24讲、线程间通信快速入门,使用wait和notify进行线程间的数据通信.mp4 │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26...
书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高...
它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: 继续支持 Java 6+ & 2.3+ ...
它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: 继续支持 Java 6+ & 2.3+ ...
它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: Java 8+(脱糖友好) Java 8 ...
它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: Java 8+(脱糖友好) Java 8 ...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border ...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border ...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border ...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...