1. 程式人生 > >JavaSE8基礎 多線程setDaemon 守護線程

JavaSE8基礎 多線程setDaemon 守護線程

println ner () his new eclips 測試類 優秀 override

禮悟:
好好學習多思考,尊師重道存感恩。葉見尋根三返一,活水清源藏於零。
虛懷若谷良心主,皓月當空自在王。願給最苦行無悔,誠勸且行且珍惜。



os :windows7 x64
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)



Thread的子類:

package jizuiku2;

import java.util.Date;

/*
 * @version V17.09
 */
public class MyThread extends Thread {

	// 具體的循環次數
	private int num;

	public MyThread(int num) {
		// TODO Auto-generated constructor stub
		this.num = num;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		super.run();
		
		// new Date().getTime() 從標準0時刻到現在 毫秒值的累計
		for (int i = 0; i < this.num; ++i) {
			System.out.println(getName() + " " + i + " " + new Date().getTime());
		}
	}

}


測試類:

package jizuiku2;

/*
 * @version V17.09
 */
public class SHDemo {
	public static void main(String[] args) {
		
		MyThread zhu_mt50 = new MyThread(50);
		MyThread sh_mt100 = new MyThread(50);
		MyThread sh_mt200 = new MyThread(50);
		
		// 設置下面兩個線程為守護線程
		sh_mt100.setDaemon(true);
		sh_mt200.setDaemon(true);
		
		zhu_mt50.setName("非守護");
		
		// 當運行的唯一線程都是守護進程線程時,Java虛擬機將退出。 
		// main所在的線程和zhu_mt50不是守護進程
		zhu_mt50.start();
		sh_mt100.start();
		sh_mt200.start();
		
		for (int i = 0; i < 500; i++) {
			System.out.println(i);
		}
		System.out.println("main所在的線程結束");
	}
}


結果:
  當被守護的main線程結束時
技術分享

  守護線程也緊跟著結束
技術分享

  非守護線程運行到了最後

技術分享

API:

技術分享

在視頻教程中,風清揚老師用一張圖 生動形象的解釋了 守護線程

技術分享

  很有趣。


Java優秀,值得學習。
學習資源:itcast和itheima視頻庫。如果您有公開的資源,可以分享給我的話,用您的資源學習也可以。
博文是觀看視頻後,融入思考寫成的。博文好,是老師講得好。博文壞,是 給最苦 沒認真。

JavaSE8基礎 多線程setDaemon 守護線程