先上**:
public class threada extends thread catch (interruptedexception e)
}system.out.println("a end...");
}}
public class threadb extends thread
system.out.println("b end...");
} catch (interruptedexception e)
}}
public class tst catch (interruptedexception e)
system.out.println("main end...");
}}
執行結果如下:
[quote]
main start...
b start...
a start...
ta:0
ta:1
ta:2
ta:3
ta:4
ta:5
ta:6
ta:7
ta:8
ta:9
a end...01
2b end...
main end...
[/quote]
如果將注釋標記1處的那行注釋掉,則threada不會啟動,即join方法會檢查執行緒是否啟動,若未啟動,則什麼都不做。
若啟動,則呼叫join的這個執行緒獲得控制權,必須等這個執行緒結束後,才能繼續當前執行緒的執行。
所以若將注釋標記2處的那行注釋掉,main執行緒將提早結束,不會等到threadb結束後再結束。而threadb並不會受main執行緒影響。
Java執行緒的join 方法
join 把指定的執行緒加入到當前執行緒,可以將兩個交替執行的執行緒合併為順序執行的執行緒。比如在主線程中呼叫了執行緒a的join 方法 a.join 則直到執行緒a執行完畢後,才會繼續執行執行緒主線程。t.join 等待執行緒 t 執行完畢,再執行呼叫t執行緒方法的執行緒。大概就是這個意思 t.j...
java 執行緒協作 join方法
在實際開發中我們往往會遇到這樣的情況乙個執行緒的執行需要依賴另乙個執行緒執行後的結果。即主線程生成並起動了子執行緒,如果子執行緒裡要進行大量的耗時的運算,主線程往往將於子執行緒之前結束,但是如果主線程處理完其他的事務後,需要用到子執行緒的處理結果,也就是主線程需要等待子執行緒執行完成之後再結束,這個...
Java執行緒Join方法介紹
thread類中的join方法的主要作用就是同步,它可以使得執行緒之間的並行執行變為序列執行。public class test1 class testthreadjoin extends thread public testthreadjoin string name public void ru...