Synchronized鎖和Lock鎖有什麼區別?

Synchronized鎖和Lock鎖

1、synchronized是JVM層面實現的,java提供的關鍵字,Lock是API層面的鎖。
2、synchronized不需要手動釋放鎖,底層會自動釋放,Lock則需要手動釋放鎖,否則有可能導致死鎖。
3、synchronized等待不可中斷,除非拋出異常或者執行完成, Lock可以中斷,通過interrupt()可中斷。
4、synchronized是非公平鎖,Lock是默認公平鎖,當傳入false時是非公平鎖。
5、synchronized不可綁定多個條件,Lock可實現分組喚醒需要喚醒的鎖。

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