JAVA深化篇_31—— 線程使用之守護(hù)線程【附有詳細(xì)說明及代碼】
守護(hù)線程
什么是守護(hù)線程
在Java中有兩類線程:
- User Thread(用戶線程):就是應(yīng)用程序里的自定義線程。
- Daemon Thread(守護(hù)線程):比如垃圾回收線程,就是最典型的守護(hù)線程。
守護(hù)線程(即Daemon Thread),是一個(gè)服務(wù)線程,準(zhǔn)確地來說就是服務(wù)其他的線程,這是它的作用,而其他的線程只有一種,那就是用戶線程。
守護(hù)線程特點(diǎn):
守護(hù)線程會隨著用戶線程死亡而死亡。
守護(hù)線程與用戶線程的區(qū)別:
用戶線程,不隨著主線程的死亡而死亡。用戶線程只有兩種情況會死掉,1在run中異常終止。2正常把run執(zhí)行完畢,線程死亡。
守護(hù)線程,隨著用戶線程的死亡而死亡,當(dāng)用戶線程死亡守護(hù)線程也會隨之死亡。
守護(hù)線程的使用
/**
* 守護(hù)線程類
*/
class Daemon implements Runnable{
@Override
public void run() {
for(int i=0;i<20;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class UsersThread implements Runnable{
@Override
public void run() {
Thread t = new Thread(new Daemon(),"Daemon");
//將該線程設(shè)置為守護(hù)線程
t.setDaemon(true);
t.start();
for(int i=0;i<5;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class DaemonThread {
public static void main(String[] args)throws Exception {
Thread t = new Thread(new UsersThread(),"UsersThread");
t.start();
Thread.sleep(1000);
System.out.println("主線程結(jié)束");
}
}
浙公網(wǎng)安備 33010602011771號