`
e3002
  • 浏览: 77772 次
社区版块
存档分类
最新评论

随时声明线程 和 jvm钩子的使用

阅读更多

一般使用线程都想需要实现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,表明钩子已生效

 

分享到:
评论

相关推荐

    java版直播间源码-JaVARx:JaVARx–JVM的React式扩展–一个库,用于使用JavaVM的可观察序列组合异步和基于事件的程序

    它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构之类的问题的关注。 版本 3.x () 单一依赖: Java 8+(脱糖友好) ...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第一阶段24讲、线程间通信快速入门,使用wait和notify进行线程间的数据通信.mp4 │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第一阶段24讲、线程间通信快速入门,使用wait和notify进行线程间的数据通信.mp4 │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26...

    Java并发编程实战

    书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高...

    java2年笔试题-RxJava-framework:响应式扩展的JavaVM实现

    它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: 继续支持 Java 6+ & 2.3+ ...

    java2年笔试题-RXJava:RXJava

    它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: 继续支持 Java 6+ & 2.3+ ...

    java2年笔试题-rxjava3:rxjava3

    它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: Java 8+(脱糖友好) Java 8 ...

    java2年笔试题-Snyk-Java:Snyk-Java

    它扩展了对数据/事件序列的支持,并添加了运算符,允许您以声明方式将序列组合在一起,同时抽象出对诸如低级线程、同步、线程安全和并发数据结构等事物的关注。 版本 3.x () 单一依赖: Java 8+(脱糖友好) Java 8 ...

    JAVA_API1.6文档(中文)

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....

    java api最新7.0

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border ...

    Java 1.6 API 中文 New

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border ...

    [Java参考文档].JDK_API 1.6

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border ...

    JavaAPI1.6中文chm文档 part1

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....

    JDK_1_6 API

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border...

    JavaAPI中文chm文档 part2

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....

    [Java参考文档]

    javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics