今天在學習java中的condition的時候,遇到一個問題。(最後發現還是基礎不行啊~)
在使用condition.await()方法之後,我以爲該線程就結束了,剩餘的代碼不執行了,後來在寫demo的時候發現測試結果怎麼也不正確,一調試發現condition.await()後面的代碼執行了。
所以,await()方法只是讓線程停止了執行,並且釋放了鎖,在使用signal()重新喚醒該線程後,線程會接着執行,並不是重新從頭執行。
(謹記!!!!)
今天在學習java中的condition的時候,遇到一個問題。(最後發現還是基礎不行啊~)
在使用condition.await()方法之後,我以爲該線程就結束了,剩餘的代碼不執行了,後來在寫demo的時候發現測試結果怎麼也不正確,一調試發現condition.await()後面的代碼執行了。
所以,await()方法只是讓線程停止了執行,並且釋放了鎖,在使用signal()重新喚醒該線程後,線程會接着執行,並不是重新從頭執行。
(謹記!!!!)