簡體   English   中英

Thread.join()(實例方法)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM