Java---join()方法的作用
阿新 • • 發佈:2019-01-28
書中的解釋是: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後面的程式碼。