您好,登錄后才能下訂單哦!
小編給大家分享一下syncronized與Lock的有什么區別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Lock是個接口;synchronized是Java中的關鍵字,內置語言實現
synchronized發生異常時,會自動釋放線程占有的鎖,因此不會發生異常死鎖;lock發生異常時,如果沒有主動通過unlock()方法釋放鎖,那么就會一直占用鎖,發生死鎖,因此需要在finally塊中釋放鎖
lock可以讓等待鎖的線程響應中斷;synchronized不行,等待的線程會一直等待下去
通過lock可以知道有沒有成功獲取鎖;synchronized不行
lock可以提高多個線程進行讀操作的效率。
從性能上來說,如果競爭資源不激烈,兩者性能是差不多的;但競爭非常激烈時,此時lock的性能要遠遠高于synchronized。
以上是“syncronized與Lock的有什么區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。