ReentrantLock

1,

ReentrantReadWriteLock是Lock的另一种实现方式,我们已经知道了ReentrantLock是一个排他锁,同一时间只允许一个线程访问,
而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。
相对于排他锁,提高了并发性。在实际应用中,大部分情况下对共享数据(如缓存)的访问都是读操作远多于写操作,这时ReentrantReadWriteLock能够提供比排他锁更好的并发性和吞吐量

2,

volatile 修饰符保证了value在内存中其他线程可以看到其值得改变。CAS操作保证了AtomicInteger 可以安全的修改value 的值(需要volatile配合完成 工作线程里面的值和主内存一样才能更新)

独享锁:该锁每一次只能被一个线程所持有。
共享锁:该锁可被多个线程共有,典型的就是ReentrantReadWriteLock里的读锁,它的读锁是可以被共享的,但是它的写锁确每次只能被独占。

3,

ReentrantLock实现原理 cas   原子类原理也是cas
cas配合volatile使用

线程先把自己的变量值与主内存中的变量值比较,一样在执行cas操作,比较转换

posted @ 2019-04-03 17:16  song123666  阅读(119)  评论(0编辑  收藏  举报