StampedLock

一、邮戳锁的介绍

邮戳锁(StampedLock)是一个java.util.concurrent.locks包下实现了Serializable(序列化)接口的类,如下所示,JDK1.8中新增的一个读写锁:

public class StampedLock implements java.io.Serializable {
    ...
}

StampedLock提供三种模式的锁:分别为写锁、悲观读锁、乐观读锁,使用StampedLock每次获得锁之后都会得到一个stamp值,是一个long类型的数字。

StampedLock不同类型的锁的资源共享情况如下:

  • 写写互斥
  • 读写互斥
  • 读读共享

二、写锁

2.1 writeLock

writeLock是排它锁、不可重入锁、也叫独占锁,相同时间只能有一个线程可以获取锁,其它线程请求读锁和写锁都会被阻塞。writeLock与unlockWrite必须成对使用,解锁时必须需要传入相对应的stamp值才可以释放锁。

import java.util.concurrent

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