守护线程不止一个?
Daemon Thread more than one?
这是一个非常简短的问题,但无法从任何地方得到答案。
可以创建多个守护线程吗?
是的。您可以简单地使用
之类的代码对其进行测试
Thread t1 = new Thread(()->{
while(true){
System.out.println("daemon1");
try {
TimeUnit.SECONDS.sleep(1);
} catch (Exception e) {}
}
});
t1.setDaemon(true);
Thread t2 = new Thread(()->{
while(true){
System.out.println("daemon2");
try {
TimeUnit.SECONDS.sleep(2);
} catch (Exception e) {}
}
});
t2.setDaemon(true);
t1.start();
t2.start();
try {
TimeUnit.SECONDS.sleep(5);
} catch (Exception e) {}
System.out.println("main thread stopped");
输出:
daemon1
daemon2
daemon1
daemon2
daemon1
daemon1
daemon1
daemon2
daemon1
main thread stopped
如您所见,两个守护进程同时 运行。此外,由于没有其他非守护线程,应用程序停止了。
这是一个非常简短的问题,但无法从任何地方得到答案。
可以创建多个守护线程吗?
是的。您可以简单地使用
之类的代码对其进行测试Thread t1 = new Thread(()->{
while(true){
System.out.println("daemon1");
try {
TimeUnit.SECONDS.sleep(1);
} catch (Exception e) {}
}
});
t1.setDaemon(true);
Thread t2 = new Thread(()->{
while(true){
System.out.println("daemon2");
try {
TimeUnit.SECONDS.sleep(2);
} catch (Exception e) {}
}
});
t2.setDaemon(true);
t1.start();
t2.start();
try {
TimeUnit.SECONDS.sleep(5);
} catch (Exception e) {}
System.out.println("main thread stopped");
输出:
daemon1
daemon2
daemon1
daemon2
daemon1
daemon1
daemon1
daemon2
daemon1
main thread stopped
如您所见,两个守护进程同时 运行。此外,由于没有其他非守护线程,应用程序停止了。