java join使用
阿新 • • 發佈:2018-10-31
比如main是主執行緒,那麼如果在main裡面啟動了A執行緒的join方法,那麼主執行緒即等待A執行緒執行結束才執行。
主執行緒要是呼叫join方法,那麼該執行緒將一直等待。因為是自己等待自己。
join()方法還有帶超時限制的過載版本。 例如t.join(5000);則讓執行緒等待5000毫秒,如果超過這個時間,則停止等待,變為可執行狀態。
程式是網上收集的。
public class TestJoin { public static void main(String[] args) { MyThread2 t1 = new MyThread2("TestJoin"); t1.start(); try { t1.join(); //join()合併執行緒,子執行緒執行完之後,主執行緒才開始執行 } catch (InterruptedException e) { } for (int i = 0; i < 10; i++) { System.out.println("I am Main Thread"); } } } class MyThread2 extends Thread { MyThread2(String s) { super(s); } @Override public void run() { for (int i = 1; i <= 10; i++) { System.out.println("I am " + getName()); try { sleep(1000); //暫停,每一秒輸出一次 } catch (InterruptedException e) { return; } } } }
程式執行結果:
I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am TestJoin I am Main Thread I am Main Thread I am Main Thread I am Main Thread I am Main Thread I am Main Thread I am Main Thread I am Main Thread I am Main Thread I am Main Thread