synchronized和ReentrantLock對比

概念

  • synchronized,翻譯同步,俗稱內(nèi)置鎖
  • ReentrantLock,Re-entrant-Lock,俗稱重入鎖,顯示鎖

synchronized的使用

  • 當synchronized作用于普通方法是,鎖對象是this;
  • 當synchronized作用于靜態(tài)方法是,鎖對象是當前類的Class對象;
  • 當synchronized作用于代碼塊時,鎖對象是synchronized(obj)中的這個obj。

相同點

  • 互斥性
  • 內(nèi)存可見性
  • 可以重入(只是針對ReentrantLock)

不同點

  • ReentrantLock實現(xiàn)Lock接口,需要顯示的加鎖和解鎖
  • ReentrantLock提供了非阻塞獲取鎖的方式,tryLock()
  • ReentrantLock提供了超時獲取鎖的方式,tryLock(long timeout, TimeUnit unit)
  • ReentrantLock能被中斷的獲取鎖的方式,lockInterruptibly()

性能對比

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

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

  • 摘要: 我們已經(jīng)知道,synchronized 是Java的關(guān)鍵字,是Java的內(nèi)置特性,在JVM層面實現(xiàn)了對臨界...
    kingZXY2009閱讀 1,883評論 0 20
  • 我們已經(jīng)知道,synchronized 是java的關(guān)鍵字,是Java的內(nèi)置特性,在JVM層面實現(xiàn)了對臨界資源的同...
    valor_wang閱讀 454評論 0 1
  • 作者: 一字馬胡 轉(zhuǎn)載標志 【2017-11-03】 更新日志 前言 在java中,鎖是實現(xiàn)并發(fā)的關(guān)鍵組件,多個...
    一字馬胡閱讀 44,334評論 1 32
  • 在一般性開發(fā)中,筆者經(jīng)??吹胶芏嗤瑢W在對待java并發(fā)開發(fā)模型中只會使用一些基礎(chǔ)的方法。比如Volatile,sy...
    張勇_bf29閱讀 747評論 0 1
  • 前言 上一篇文章《基于CAS操作的Java非阻塞同步機制》 分析了非同步阻塞機制的實現(xiàn)原理,本篇將分析一種以非同步...
    Mars_M閱讀 4,930評論 5 9

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