Bug:StampedLock的中断问题导致CPU爆满
StampedLock作为JAVA8中出现的新型锁,很可能在大多数场景都可以替代ReentrantReadWriteLock。它对于读/写都提供了四个接口(换成write为写锁):
- readLock()
- tryReadLock()
- tryReadLock(long time, TimeUnit unit)
- readLockInterruptibly()
这几个方法对应的语义为:
- 获取读锁(阻塞,不响应中断)
- 获取读锁(立即)
- 限时获取读锁(响应中断)
- 获取读锁(阻塞,响应中断)