1,緩存
ReentrantReadWriteLock是Lock的另外一種實現方式,咱們已經知道了ReentrantLock是一個排他鎖,同一時間只容許一個線程訪問,
而ReentrantReadWriteLock容許多個讀線程同時訪問,但不容許寫線程和讀線程、寫線程和寫線程同時訪問。
相對於排他鎖,提升了併發性。在實際應用中,大部分狀況下對共享數據(如緩存)的訪問都是讀操做遠多於寫操做,這時ReentrantReadWriteLock可以提供比排他鎖更好的併發性和吞吐量安全
2,併發
volatile 修飾符保證了value在內存中其餘線程能夠看到其值得改變。CAS操做保證了AtomicInteger 能夠安全的修改value 的值(須要volatile配合完成 工做線程裏面的值和主內存同樣才能更新)線程
獨享鎖:該鎖每一次只能被一個線程所持有。
共享鎖:該鎖可被多個線程共有,典型的就是ReentrantReadWriteLock裏的讀鎖,它的讀鎖是能夠被共享的,可是它的寫鎖確每次只能被獨佔。內存
3,it
ReentrantLock實現原理 cas 原子類原理也是cas
cas配合volatile使用變量
線程先把本身的變量值與主內存中的變量值比較,同樣在執行cas操做,比較轉換原理