守護線程的概念是: 當一個進程裏,所有的線程都是守護線程的時候,結束當前進程。
就好像一個公司有銷售部,生產部這些和業務掛鉤的部門。
除此之外,還有後勤,行政等這些支持部門。
如果一家公司銷售部,生產部都解散了,那麼只剩下後勤和行政,那麼這家公司也可以解散了。
守護線程就相當於那些支持部門,如果一個進程只剩下守護線程,那麼進程就會自動結束。
守護線程通常會被用來做日誌,性能統計等工作。
setDaemon(), 設置一個線程爲守護線程, 該線程不會單獨執行, 當其他非守護線程都執行結束後, 自動退出
public static void main(String args[]) {
Thread t1 = new Thread() {
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println("t1:" + getName());
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread t2 = new Thread() {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("t2:" + getName());
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t1.setDaemon(true); //將t1設置爲守護線程
t1.start();
t2.start();
}