守护程序线程不止一个?

时间:2015-08-09 12:32:52

标签: java multithreading daemon

这是一个非常简短的问题,但无法从任何地方得到答案。

可以创建多个守护程序线程吗?

1 个答案:

答案 0 :(得分:2)

是。您只需使用

等代码进行测试即可
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

如您所见,两个守护进程同时运行。此外,由于没有其他非守护程序线程,应用程序停止。