Java之 join 等待執行緒終止

鄭清發表於2018-08-28

join : 當前等待其他執行緒執行結束 之後 再繼續執行
        執行緒一:開始執行,執行過程中暫停,讓執行緒二開始執行,當執行緒二執行結束後,執行緒一接著執行
void join() :等待該執行緒終止 

ex:

public class Demo {
	public static void main(String[] args) {
		Download d = new Download();
		Show s = new Show(d);//把下載執行緒物件作為Show的構造方案方法引數
		s.start();
		d.start();
	}
}
//顯式圖片的執行緒
class Show extends Thread{
	private Download d;
	
	public Show(Download d) {
		super();
		this.d = d;
	}

	@Override
	public void run() {
		System.out.println("開始顯示 ...");
		try {
			//等待下載執行緒執行結束,自己再繼續執行
			d.join();//自己暫停,讓d開始執行,d執行結束後,自己繼續執行
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("下載完成 ==》顯示  ...");
	}
}
//下載圖片的執行緒
class Download extends Thread{
	@Override
	public void run() {
		for(int i = 1;i <= 10;i++){
			System.out.println("下載進度:" + i*10 + "%");
			try {
				Thread.sleep(50);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

執行結果圖:

相關文章