锁降级 ReentrantReadWriteLock

锁降级 ReentrantReadWriteLock

所谓降级,可以通过一个例子理解,一般都是写的权限大,读的权限小,从写到读自然是降级,这是通俗的理解。
锁降级:同一个线程先获取写锁,在写锁未释放的情况下,再获取读锁,之后释放写锁,锁降级为读锁。
不同线程间读写是互斥的。
锁降级 ReentrantReadWriteLock_第1张图片
锁降级是为了让当前线程感知到数据的变化,目的是保证数据可见性。
即为同一个线程写完之后可以立即看到写入的情况,也交写后读。
可以降级
锁降级 ReentrantReadWriteLock_第2张图片
锁降级 ReentrantReadWriteLock_第3张图片
不可以升级
锁降级 ReentrantReadWriteLock_第4张图片
读写互斥
锁降级 ReentrantReadWriteLock_第5张图片
源码总结–锁降级机制专门为缓存设计
锁降级 ReentrantReadWriteLock_第6张图片
锁降级 ReentrantReadWriteLock_第7张图片

你可能感兴趣的:(JUC并发编程,java,JUC并发编程)