讀寫鎖 ReentrantReadWriteLock 與 互斥鎖 的效率

你怎麼敢的呀發表於2020-11-08

ReentrantReadWriteLock

一種支援一寫多讀的同步鎖,讀寫分離,可分別分配讀鎖、寫鎖

支援多次分配讀鎖,使多個讀操作可以併發執行

互斥規則

寫 - 寫:互斥,阻塞

讀 - 寫:互斥,讀阻塞寫、寫阻塞讀

讀 - 讀:不互斥,不阻塞

在讀操作遠遠高於寫操作的環境中,可在保證執行緒安全的情況下,提高執行效率

 

我們可以寫一個例子,就是讀的操作多,寫的操作少,我們可以比較一下,使用讀寫鎖和互斥鎖的執行的效率

讀寫鎖的程式碼

測試程式碼:

執行結果

 

測試互斥鎖的程式碼:其實就是修改了鎖為lock,其他都沒有改變

 

測試結果:

 

可以發現 讀寫鎖 對效率的提升有很大的幫助

 

 

 

 

 

 

相關文章