1. 程式人生 > >Java---join()方法的作用

Java---join()方法的作用

書中的解釋是:join()方法就是指呼叫該方法的執行緒在執行完run()方法後,再執行join方法後面的程式碼,即將兩個執行緒合併,用於實現同步控制。

具體作用:

等待該執行緒終止,例如,在子執行緒呼叫了join(time)方法後,主執行緒只有等待子執行緒time時間後才能執行子執行緒後面的程式碼。

具體程式碼:

public class joinTest {
	class ThreadImp implements Runnable {
		public void run(){
			try{
				System.out.println("Begin");
				Thread.sleep(1000);
				System.out.println("end");
			}catch(InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	//主執行緒
	public static void main(String[] args) {
		joinTest ts = new joinTest();
		//子執行緒
		Thread t = new Thread(ts.new ThreadImp());
		t.start();
		try{
			t.join(2000);
			if (t.isAlive()) {
				System.out.println("alive");
			} else {
				System.out.println("dead");
			}
			System.out.println("finished");
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

執行結果為:

當將t.join(2000)改為t.join(1000)或者時間間隔更小時,執行結果如下:

從上述結果可以看出,如果子執行緒執行的時間超過join裡面設定的時間,那麼程式是先執行子執行緒,當超過join裡面設定的時間時,主執行緒執行join後面的程式碼結束後,再執行子執行緒中剩餘程式碼;

當子執行緒執行的時間小於join設定的時間,那麼等到子執行緒的run方法結束後再執行join後面的程式碼。