Java中的守护进程是什么?
任何人都可以告诉我Java中的守护线程是什么?
守护进程线程是一个线程,当程序完成但线程仍在运行时,该线程不会阻止JVM退出。 守护线程的一个例子就是垃圾收集。
您可以使用setDaemon(boolean)
方法在线程启动之前更改Thread
守护程序属性。
还有几点(参考:实践中的Java并发)
普通线程和守护进程线程在退出时会发生什么变化。 当JVM暂停任何剩余的守护进程线程时:
由于这个原因,应该谨慎地使用守护进程线程,并且将它们用于可能执行任何类型的I / O的任务是危险的。
以上所有答案都很好。 这里有一个简单的小代码片段,来说明不同之处。 在setDaemon
中使用true和false的每个值来尝试它。
public class DaemonTest {
public static void main(String[] args) {
new WorkerThread().start();
try {
Thread.sleep(7500);
} catch (InterruptedException e) {
// handle here exception
}
System.out.println("Main Thread ending") ;
}
}
class WorkerThread extends Thread {
public WorkerThread() {
// When false, (i.e. when it's a user thread),
// the Worker thread continues to run.
// When true, (i.e. when it's a daemon thread),
// the Worker thread terminates when the main
// thread terminates.
setDaemon(true);
}
public void run() {
int count = 0;
while (true) {
System.out.println("Hello from Worker "+count++);
try {
sleep(5000);
} catch (InterruptedException e) {
// handle exception here
}
}
}
}
链接地址: http://www.djcxy.com/p/41803.html