2012-09-08 46 views
-9

如果我打電話start()上線A,使其運行發生了什麼,然後再調用start(),而它的仍在運行,會發生什麼?一個線程調用start()時,幾次

實施例:

myThread.start(); 

// myThread is running... 

myThread.start(); 
+12

你可以試試自己看看。 –

+1

當您嘗試過一次後發生了什麼?當你在Javadoc中查找時,你發現了什麼?零研究。 -1。 – EJP

回答

5

一種IllegalThreadState會拋出異常。沒有辦法讓線程在啓動後回到「等待啓動」狀態,因此無論線程在第一個start之後的狀態如何,第二個線程將處於錯誤的狀態。

+0

如果我想重啓線程怎麼辦?我在線程中調用中斷,並在線程運行方法上檢查它是否退出,並調用開始?如果線程沒有終止? – esoni

+0

@dariofrongi:這是一個壞主意。首先編寫線程來做你想做的事情,這樣你就不必亂用它了。如果你中斷它並且它持有一個鎖,那麼恢復它的線程需要,你會死鎖。 –

+0

我要實現一個線程,在他的構造函數有一個藍牙設備和運行方法是嘗試連接白衣該設備,但如果在主線程同時bleutooth線程在連接重新運行在用戶點擊並選擇其他藍牙設備,我想停止藍牙線程並使用新設備再次運行它,hoow可以做到嗎? – esoni

相關問題