JUC中的 StampedLock
Posted XeonYu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JUC中的 StampedLock相关的知识,希望对你有一定的参考价值。
上一篇:
JUC中的读写锁(ReentrantReadWriteLock)
之前我们了解了 ReentrantReadWriteLock,ReentrantReadWriteLock有一个缺点就是读锁会阻塞住写锁,这样会导致当读的线程非常多时,写锁可能会被一直阻塞,无法及时完成写入操作。
所以,在Java8中有引入了StampedLock
StampedLock
Stamped 中文是盖上邮戳的的意思,这里可以理解为给锁加了个标记,这个标记我们可以叫做版本号。
那顾名思义 StampedLock就是带戳(标记)的一把锁。
StampedLock同样支持读写锁,但是比ReentrantReadWriteLock中的读锁多了一个特性是StampedLock中的读锁可以是乐观锁
乐观锁实际上不加锁,只是判断一下版本号,不会阻塞住写锁,乐观的认为读的时候没有写的操作。所以,乐观锁在读的过程中,写锁是可以执行的。
我们先来看看StampedLock中的方法
以上是关于JUC中的 StampedLock的主要内容,如果未能解决你的问题,请参考以下文章