并发JavaJava 并发锁
- 分类
- Java 并发
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/28 21:25
答案
stampedlock在获取锁的时候会返回一个long型的数据戳,该数据戳用于稍后的锁释放参数,如果返回0则代表获取失败。而当线程持有后再次获取,依然会返回一个新的数据戳,因此是不可重入的。
相关题目(5)
Java 并发并发JavaJava 并发锁
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
有哪些支持并发的集合?共源 1
Java 并发并发JavaJava 并发
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(并发).md
knowledge_noteQuestion 62: 为什么 StampedLock 是不可重入的?
Source answer: stampedlock在获取锁的时候会返回一个long型的数据戳,该数据戳用于稍后的锁释放参数,如果返回0则代表获取失败。而当线程持有后再次获取,依然会返回一个新的数据戳,因此是不可重入的。
Reviewed answer: 因为 StampedLock 每次获取锁都会返回一个新的 stamp,释放锁时也依赖该 stamp。线程即使已持有锁,再次获取时得到的仍是新的凭证,因此不具备可重入语义。