ReentrantLock

1,緩存

ReentrantReadWriteLock是Lock的另外一種實現方式,咱們已經知道了ReentrantLock是一個排他鎖,同一時間只容許一個線程訪問,
而ReentrantReadWriteLock容許多個讀線程同時訪問,但不容許寫線程和讀線程、寫線程和寫線程同時訪問。
相對於排他鎖,提升了併發性。在實際應用中,大部分狀況下對共享數據(如緩存)的訪問都是讀操做遠多於寫操做,這時ReentrantReadWriteLock可以提供比排他鎖更好的併發性和吞吐量安全

2,併發

volatile 修飾符保證了value在內存中其餘線程能夠看到其值得改變。CAS操做保證了AtomicInteger 能夠安全的修改value 的值(須要volatile配合完成 工做線程裏面的值和主內存同樣才能更新)線程

獨享鎖:該鎖每一次只能被一個線程所持有。
共享鎖:該鎖可被多個線程共有,典型的就是ReentrantReadWriteLock裏的讀鎖,它的讀鎖是能夠被共享的,可是它的寫鎖確每次只能被獨佔。內存

3,it

ReentrantLock實現原理 cas   原子類原理也是cas
cas配合volatile使用變量

線程先把本身的變量值與主內存中的變量值比較,同樣在執行cas操做,比較轉換原理

相關文章
相關標籤/搜索