Java的Daemon线程的测试
来源:互联网 发布:雅思精听 知乎 编辑:程序博客网 时间:2024/06/12 08:17
进行测试当线程只剩下守护线程的时候,JVM就会退出,但是如果还有其他任意一个用户线程还在,JVM就不会退出。
public class DaemonRunner implements Runnable { public void run() { while (true) { for (int i = 1; i <= 100; i++) { System.out.println(i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
public static void main(String[] args) { Thread daemonThread = new Thread(new DaemonRunner()); // 设置为守护进程 daemonThread.setDaemon(true); daemonThread.start(); System.out.println("isDaemon = " + daemonThread.isDaemon()); Scanner scanner = new Scanner(System.in); // 接受输入,使程序在此停顿,一旦接受到用户输入,main线程结束,JVM退出! scanner.next(); //AddShutdownHook方法增加JVM停止时要做处理事件: //当JVM退出时,打印JVM Exit语句. Runtime.getRuntime().addShutdownHook(new Thread(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("JVM Exit!"); } }); }}
当程序运行的时候,Daemon线程会不断的在控制台打印数字,而main线程是一个用户线程由于”scanner.next()”
等待用户输入,属于阻塞了.此时JVM不会退出.
原文章来自于http://www.cnblogs.com/ChrisWang/archive/2009/11/28/1612815.html
阅读全文
0 0
- Java的Daemon线程的测试
- Java的Daemon线程
- Java的Daemon线程
- Java 的Daemon线程理解
- 关于Java的Daemon线程的理解
- 特殊的Daemon线程
- Python线程的daemon属性
- JAVA的daemon Thread
- Daemon线程与普通线程的区别
- daemon线程和user线程的区别
- Java Daemon线程
- Java Daemon线程
- Java Daemon线程
- Java Daemon线程
- Java Daemon线程
- Java后台线程Daemon
- Java Daemon线程
- JAVA Daemon线程
- 微服务架构模式简介
- 方差、协方差、马氏距离-总结
- swift的一些基类的扩展
- NSUserDefaults存储路径
- 聚合支付:全新的第四方支付平台
- Java的Daemon线程的测试
- Linux 查看某一个进程占用内存情况
- DTP控件和月历控件的风格及其设置
- vim常用命令
- 使用SfntTool制作字体剪辑工具4
- 【机器学习】关于t-sne:降维、可视化
- c++中resize()函数
- Unsafe与CAS
- 拖放=>实现两个div内容互换