我已經被問過這個問題,在一個選擇題(只有1是正確的)測試,但我不知道什麼都可以回答這個java +這些不會導致線程停止:等待,通知,睡眠,多一個選項
which of these will not cause the thread to stop ?
wait,notify,sleep,One more option provided(i dont remember)
我理解這些好看多了,但不知道是什麼這個問題的答案,並尋找相同
我已經被問過這個問題,在一個選擇題(只有1是正確的)測試,但我不知道什麼都可以回答這個java +這些不會導致線程停止:等待,通知,睡眠,多一個選項
which of these will not cause the thread to stop ?
wait,notify,sleep,One more option provided(i dont remember)
我理解這些好看多了,但不知道是什麼這個問題的答案,並尋找相同
notify
會醒來的過程中或放入運行隊列。您給出的其他兩個選項將進程置於等待隊列中。
等待和睡眠會導致線程暫時停止執行。
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#sleep%28long%29
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#wait%28%29
通知將恢復(在notifyAll的情況下或線程)在線程執行的是已經等待叫之前。
給出三個選項,通知將是最準確的答案
wait
- >線程調用wait上它持有鎖的對象,然後依賴於一些其他線程notify
它
notify
和notifyAll
- >通知會喚醒線程並將它們放入可運行隊列中,並且在調用鎖的通知的線程釋放鎖之後,來自可運行隊列的線程中的一個線程將持有鎖。
sleep
- >顧名思義,將停止線程的處理並將其置於睡眠狀態持續指定的持續時間。直到有人中斷或超時發生。
所以答案是notify
不會導致線程停止。