不能。如果这样做,它会抛出 IllegalThreadStateException
。因此,只能在启动线程之前创建一个守护线程。示例代码:
class Testdaemon1 extends Thread{
public void run(){
System.out.println("Running thread is daemon...");
}
public static void main (String[] args) {
Testdaemon1 td= new Testdaemon1();
td.start();
setDaemon(true);// It will throw the exception: td.
}
}
运行结果:
Running thread is daemon...
Exception in thread "main" java.lang.IllegalThreadStateException
at java.lang.Thread.setDaemon(Thread.java:1359)
at Testdaemon1.main(Testdaemon1.java:8)