java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神

程序員、編程、軟件開發

吐槽

今天看公司代碼發現ReentrantReadWriteLock(讀寫鎖)的使用 讀寫鎖

然後看看代碼git提交記錄

好吧是公司30K的大神寫的

我趕緊學習一下

代碼案例

具體公司代碼我就省略了,大家自己YY吧

主要場景是併發下

緩存+DB

緩存是為了減輕DB的壓力,這個根據你的業務代碼選擇使用

java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神

讀寫的案例

java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神

ReentrantReadWriteLock優勢

  • 併發性能高
  • 提供比排他鎖更好的併發性和吞吐量
  • 如果一個線程對資源加了讀鎖,其他線程可以繼續加讀鎖(讀讀可以疊加)
  • 如果對資源加了寫鎖,其他線程無法再獲得寫鎖與讀鎖(寫不可疊加)
  • 鎖Lock、synchronizy都是直接把讀寫都鎖住
java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神

功能

java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神

優點分析2

建議它理解成一個數據庫的事務鎖

java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神
java程序員實戰用過ReentrantReadWriteLock的,可能都是30K大神

有理解更加透徹的專家程序員,歡迎評論留言


分享到:


相關文章: