JUC中的 StampedLock

Posted XeonYu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JUC中的 StampedLock相关的知识,希望对你有一定的参考价值。

上一篇:

JUC中的读写锁(ReentrantReadWriteLock)

之前我们了解了 ReentrantReadWriteLock,ReentrantReadWriteLock有一个缺点就是读锁会阻塞住写锁,这样会导致当读的线程非常多时,写锁可能会被一直阻塞,无法及时完成写入操作。
所以,在Java8中有引入了StampedLock

StampedLock

Stamped 中文是盖上邮戳的的意思,这里可以理解为给锁加了个标记,这个标记我们可以叫做版本号。

那顾名思义 StampedLock就是带戳(标记)的一把锁

StampedLock同样支持读写锁,但是比ReentrantReadWriteLock中的读锁多了一个特性是StampedLock中的读锁可以是乐观锁

乐观锁实际上不加锁,只是判断一下版本号,不会阻塞住写锁,乐观的认为读的时候没有写的操作。所以,乐观锁在读的过程中,写锁是可以执行的。

我们先来看看StampedLock中的方法

以上是关于JUC中的 StampedLock的主要内容,如果未能解决你的问题,请参考以下文章

JUC中的 StampedLock

JUC中的 StampedLock

并发编程系列之StampedLock使用

并发编程系列之StampedLock使用

通俗易懂的JUC源码剖析-StampedLock

JUC并发编程 共享模式之工具 JUC 读写锁 StampedLock -- 介绍 & 使用