程序員、編程、軟件開發
吐槽
今天看公司代碼發現ReentrantReadWriteLock(讀寫鎖)的使用 讀寫鎖
然後看看代碼git提交記錄
好吧是公司30K的大神寫的
我趕緊學習一下
代碼案例
具體公司代碼我就省略了,大家自己YY吧
主要場景是併發下
緩存+DB
緩存是為了減輕DB的壓力,這個根據你的業務代碼選擇使用
讀寫的案例
ReentrantReadWriteLock優勢
- 併發性能高
- 提供比排他鎖更好的併發性和吞吐量
- 如果一個線程對資源加了讀鎖,其他線程可以繼續加讀鎖(讀讀可以疊加)
- 如果對資源加了寫鎖,其他線程無法再獲得寫鎖與讀鎖(寫不可疊加)
- 鎖Lock、synchronizy都是直接把讀寫都鎖住
功能
優點分析2
建議它理解成一個數據庫的事務鎖