[英]Thread.join() (instance method)
為什么在啟動線程之前無法.join()
? 不應該隱含的是,即使我之前未啟動,如果我在線程上調用join(),也應該啟動嗎?
正如Javadoc所說,因為join()
等待線程死亡。 如果還沒有開始,它就不會死。
我不認為如果不啟動它就不應啟動線程,因為該方法會做兩件事:啟動線程並等待線程,這是不好的設計。
根據javadoc
join方法允許一個線程等待另一個線程的完成。 如果t
是當前正在執行線程的Thread對象,
t.join();
導致當前線程暫停執行,直到t的線程終止。 連接的重載使程序員可以指定等待時間。
因此,它清楚地表明,如果您加入一個線程,那么當前線程將等到線程終止。 因此,如果尚未啟動線程,如何終止它。
矛盾證明:D
說您可以不啟動就加入線程t
。 然后你打電話
t.join();
現在,根據加入行為,當前線程將處於等待狀態。 現在說您想到了一些邪惡的想法(!),而您還沒有啟動線程(:D)。 現在會發生什么? 想象一下這種情況,您將找到答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.