【Java面試題】調用yield()、sleep()、notify()、wait()等方法對鎖有何影響?

yield():讓出CPU的執行權,進入就緒狀態,不會釋放鎖;

sleep():線程休眠,但不會釋放鎖;

notify():對鎖無影響,線程只有在synchronized同步代碼執行完成後,纔會釋放鎖,

               所以,notify系列方法一般都是在synchronized同步代碼的最後一行。

wait():會釋放當前線程所持有的鎖,而且當被喚醒後,會重新去競爭鎖,鎖競爭到後纔會執行wait方法後面的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章