synchronized與lock的區別

 

1. synchronized是JVM層面上的,而lock是一個接口 
2. 發生異常是,synchronized會自動釋放佔有的鎖;而lock必須在finally裏釋放鎖,否則可能引發死鎖的發生。 
3. lock等待鎖過程當中能夠用interrupt來終端等待,而synchronized只能等待鎖的釋放,不能響應中斷; 
4. lock能夠經過trylock來知道有沒有獲取鎖,而synchronized不能; 
5. synchronized在少許同步時跟lock效率差很少,大量同步時synchronized效率較低。接口

相關文章
相關標籤/搜索