StampedLock是一个基础能力的锁,它有3种模式控制读写访问。锁状态通过版本和模式组成。锁获取方法返回一个印记表示和控制访问到一个锁状态;试图加锁返回一个特定值,0表示获取访问失败。锁释放和转换要求一个印记参数,如果他们不匹配锁状态将失败。锁的3种模式:写模式、度模式、优化读模式。
这个类也提供三种模式直接的相互转换。例如:方法tryConvertToWriteLock(long) 试图升级一个模式,返回一个有效的写印记假如在读模式到写模式。
StampedLocks被设计使用在开发线程安全的内部使用工具。他们使用在可靠的数据属性、对象、方法被保护。他们不是可重入的,所以锁体不应该调用其他不知道的方法重复获取锁。
文档介绍如下图: