守護線程
守護線程時一種特殊的線程,又稱爲陪伴線程
java中有兩種線程:
1用戶線程
2守護線程
Thread類提供isDaemon()區別兩種線程,
false爲用戶線程
true爲守護線程
java中典型的守護線程就是垃圾回收線程
只要當前JVM中存在任何一個用戶線程沒有線程,守護線程就在工作
只有當最後一個用戶線程結束時,守護線程纔會隨着JVM停止工作
Thread類提供setDaemon():
將用戶線程設置稱爲守護線程
舉例:將子線程A設置成守護線程,子線程B和主線程默認是用戶線程
package se.SE.practice;
class MyThread implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"是否爲守護線程"+Thread.currentThread().isDaemon());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println(Thread.currentThread().getName()+"退出!");
return;
}
}
}
public class Thread1{
public static void main(String[] args) throws InterruptedException {
System.out.println("main線程開始");
MyThread myThread=new MyThread();
Thread thread=new Thread(myThread,"子線程A");
thread.setDaemon(true);
Thread thread1=new Thread(myThread,"子線程B");
thread.start();
thread1.start();
Thread.sleep(1000);
thread1.interrupt();//中斷子線程B
System.out.println("main線程結束");
}
}
結果: