更多 Java 并发编程方面的文章,请参见文集《Java 并发编程》
守护线程 Daemon Thread
- low priority thread,例如 GC
- 与 User Thread 相对应。如果所有的 User Thread 全部结束,则 Daemon Thread 也结束(即使没有执行完),JVM 退出。
- 使用
t.setDaemon(true)
将某个线程设置为 守护线程
例如,如下的代码子线程需要执行 1000 毫秒,但是由于设置为守护线程,因此主线程不会等待子线程执行结束,而是提前退出。
public class DaemonThread_Test {
public static void main(String[] args) {
DaemonThread t = new DaemonThread();
// 设置为 守护线程
t.setDaemon(true);
t.start();
}
}
class DaemonThread extends Thread {
public void run() {
System.out.println(Thread.currentThread().getName() + " start");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println(Thread.currentThread().getName() + " end");
}
}