14.7後臺守護線程

java中的線程分爲兩類:用戶線程、守護線程。守護線程(Daemon)是一種運行在後臺的線程服務線程,當用戶線程存在時守護線程也可以同時存在,如果用戶線程全部消失(程序執行完畢,JVM進程結束)時守護線程也會消失。
用戶線程就是用戶自己開發或者由系統分配非人防主線程,其處理的是核心功能,守護線程就像用戶線程的保鏢一樣,如果用戶線程一旦消失,守護線程就沒有存在的意義了。在java中提供有自動垃圾收集機制,實際上這就是屬於一個守護線程,當用戶線程存在時,GC線程將一直存在,如果全部的用戶線程執行完畢了,那麼GC線程就沒有存在的意義了。
java中的線程都是通過Thread類來創建的,用戶線程和守護線程除了運行模式的區別外,其他完全相同。
守護線程操作方法:

在這裏插入圖片描述
範例:使用守護線程

public class ThreadDemo334 {
       public static void main(String[] args) {
		Thread userThread=new Thread(()->{
			for(int x=0; x<2;x++) {
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					
					e.printStackTrace();
				}
				System.out.println(Thread.currentThread().getName()+"正在運行、x="+x);
			}
			
		},"用戶線程");    //完成核心業務
		Thread DaemonThread=new Thread(()->{
			for (int x = 0; x <Integer.MAX_VALUE; x++) {
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					
					e.printStackTrace();
				}
				System.out.println(Thread.currentThread().getName()+"正在運行、x="+x);
			}
			
		},"守護線程") ;                  //完成核心業務
		
		DaemonThread.setDaemon(true);    //設置爲守護線程
		userThread.start();              //啓動用戶線程
		DaemonThread.start();            //啓動守護線程
	}
}

執行結果

用戶線程正在運行、x=0
守護線程正在運行、x=0
守護線程正在運行、x=1
用戶線程正在運行、x=1

本程序定義了一個守護線程,並且該守護線程將一直進行信息的輸出,但是通過執行的結果可以發現,當用戶線程消失後守護線程也同時結束。

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