[Java多線程]守護線程

守護線程

守護線程時一種特殊的線程,又稱爲陪伴線程

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線程結束");
    }
}

結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章