本文風格:代碼+結果+總結註釋
獲取源代碼獲取更好的閱讀體驗:守護線程的創建
package com.sakura.rain;
/**
* @ClassName Main001
* @function [爲什麼會需要守護線程]
* @notice 持久化操作不做業務上處理
* @Author lcz
* @Date 2020/06/24 23:06
*/
public class Main001 {
public static void main(String[] args) {
/*代碼段*/
ThreadDemo threadDemo = new ThreadDemo();
threadDemo.start();
Thread thread = new Thread(() -> {
for (;;) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------");
}
});
thread.setDaemon(true);
thread.start();
/*
程序執行結果:
1592879626664
1592879627664
1592879628665
1592879629666
1592879630666
1592879631666
------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------
1592879632666
1592879633667
1592879634667
1592879635667
1592879636667
------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------
1592879637668
1592879638668
1592879639669
1592879640670
1592879641670
------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------
1592879642670
1592879643671
1592879644672
1592879645672
1592879646672
------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------
1592879647672
1592879648672
1592879649673
1592879650673
1592879651673
------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------
1592879652674
1592879653674
1592879654675
1592879655675
1592879656675
------這個線程時不時會打印一些信息[比如定時查看系統內存,執行gc動作等]------
* */
/*
* 總結說明:
* 系統在正常運行狀態的時候執行一些列業務操作或是其他的內容。
*
* 輔助需要一個線程執行某些額外的動作,此線程存活的依據或者是執行動作的條件是系統中還有其他線程正在執行
* 要求在系統中其他任務結束之後此線程便不再運行,人爲管理這種進程並不合理。
*
* 因此設置守護線程,當其他線程結束之後,此線程便隨之結束
* */
}
}
class ThreadDemo extends Thread {
@Override
public void run() {
int count = 0;
while (count <= 30) {
count = count + 1;
System.out.println(System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
代碼中的言辭和觀點都是個人理解,不足之處還望指正。