線程中yield()、sleep()、wait()、notify()對鎖有何影響?

1.yield()

yield()方法僅僅只是讓出cpu的執行權,並不會將鎖讓出

2.sleep()

sleep()方法也不會將鎖讓出,當我們的線程休眠後,必須等待線程休眠過後,其他線程纔可以拿到鎖

3.wait()

wait()方法被調用後會釋放自己的鎖,當被喚醒的時候會繼續去競爭鎖

4.notify()

notify()方法不會釋放鎖,只有同步代碼塊的業務執行完成後纔會釋放鎖,一般該方法放在代碼最後一行

 

 

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