29.synchronized和Lock的區(qū)別

主要相同點(diǎn):Lock能完成synchronized所實(shí)現(xiàn)的所有功能

主要不同點(diǎn):Lock有比synchronized更精確的線程語義和更好的性能。Lock的鎖定是通過代碼實(shí)現(xiàn)的,而synchronized是在JVM層面上實(shí)現(xiàn)的,synchronized會(huì)自動(dòng)釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。Lock還有更強(qiáng)大的功能,例如,它的tryLock方法可以非阻塞方式去拿鎖。Lock鎖的范圍有局限性,塊范圍,而synchronized可以鎖住塊、對象、類。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 摘要: 我們已經(jīng)知道,synchronized 是Java的關(guān)鍵字,是Java的內(nèi)置特性,在JVM層面實(shí)現(xiàn)了對臨界...
    kingZXY2009閱讀 1,883評論 0 20
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,839評論 18 399
  • 最近在學(xué)習(xí)單例模式和Android消息傳遞方面的知識(shí),都用到了synchronized同步關(guān)鍵字,于是整理下思路。...
    風(fēng)信子丶閱讀 2,140評論 0 18
  • 一、進(jìn)程和線程 進(jìn)程 進(jìn)程就是一個(gè)執(zhí)行中的程序?qū)嵗?,每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個(gè)進(jìn)程中可以有多個(gè)線程。...
    阿敏其人閱讀 2,713評論 0 13
  • 我們已經(jīng)知道,synchronized 是java的關(guān)鍵字,是Java的內(nèi)置特性,在JVM層面實(shí)現(xiàn)了對臨界資源的同...
    valor_wang閱讀 454評論 0 1

友情鏈接更多精彩內(nèi)容