Tim*_*Tim 2 java multithreading daemon
嗨所有,当封闭它的线程完成后,守护程序线程是否会停止工作?或者"主"线程完成时守护程序线程会停止吗?
我在jre6上测试了这个例子,结果是daemon thread stopped working when the enclosing it thread finished.请注意,java docs表示当没有其他应用程序线程时,守护程序线程将被终止.并且不会说父级非守护程序线程保留时会杀死守护程序线程.
请给我答案.请寄给我关于这个问题的任何材料.对不起我的英语不好.
public class Main {
public static void main(String[] args) {
Thread simple = new Thread(new SimpleTask());
simple.start();
}
}
class SimpleTask implements Runnable {
public void run() {
try {
Thread daemon = new Thread(new DaemonTask());
daemon.setDaemon(true);
daemon.start();
Thread.sleep(5000);
} catch (InterruptedException e) {}
};
}
class DaemonTask implements Runnable {
public void run() {
int i = 0;
while (true) {
try {
System.out.println("a" + (i++));
Thread.sleep(500);
} catch (InterruptedException e) {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 11
当封闭它的线程完成时,守护程序线程是否会停止工作?
Java中没有"封闭线程"这样的概念.有线程组但它们很少使用.
守护程序线程只是线程,不会阻止JVM终止.如果没有任何非守护程序线程,JVM将终止.如果仍有一些非守护程序线程正在执行,JVM将继续运行,包括任何守护程序线程 - 无论启动这些守护程序线程的线程是否已完成.
| 归档时间: |
|
| 查看次数: |
5593 次 |
| 最近记录: |