考慮下面的代碼:Thread類的join()方法如何工作?
class ThreadJoinTest{
public static void main(String[] arguments){
TimeUnit unit;
final Thread taskThread = new Thread(task);
taskThread.start();
taskThread.join(unit.millis(timeout));
}
}
所以當主線程將與超時值,主線程給taskThread
充足的時間來完成它的任務執行線taskThread.join()
?這是連接方法的主要目標嗎?
如果會發生什麼:
taskThread
的超時期限之前完成它的執行?- 如果達到超時但
taskThread
尚未執行完成會發生什麼情況?taskThread
是否有機會完成任務? - 主線程如何知道由於
taskThread
正常完成或達到超時而返回連接?
我認爲你的答案回答了前兩個問題,但不是第三個問題。由於從聯接返回的類型爲void主線程如何知道線程taskThread是否正常完成或由於超時? – Geek 2012-07-15 16:04:00
@Geek:增加了一些信息。 – Keppil 2012-07-15 16:12:19
所以這是設計中的一個缺陷..你覺得怎麼樣? – Geek 2012-07-15 16:23:40