当前位置:嗨网首页>书籍在线阅读

32-其他说明

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

其他说明

值得一提的是, StampedLock 类中还包含了其他方法,具体如下。

  • tryReadLock()tryReadLock(long time, TimeUnit unit) :这些方法可帮助线程以读模式获得锁。如果都获取失败了,则第一个方法将立即给出返回结果,而第二个方法将等待由方法传参指定的时间后给出返回结果。另外,这两个方法返回的是一个票据值,开发者需要对该票据值进行校验 (stamp != 0)
  • tryWriteLock()tryWriteLock(long time, TimeUnit unit) :这些方法可帮助线程以写模式获得锁。如果都获取失败了,那么第一个方法将立即给出返回结果,而第二个方法将等待由方法传参指定的时间后给出返回结果。另外,这两个方法返回的是一个票据值,开发者需要对该票据值进行校验 (stamp != 0)
  • isReadLocked()isWriteLocked() :这两个方法分别用于判断当前是读锁还是写锁。
  • tryConvertToReadLock(long stamp)tryConvertToWriteLock(long stamp)tryConvertTo OptimisticRead(long stamp) :这些方法传入一个票据值作为参数,并尝试把当前锁的模式转换为由方法名指定的锁模式。转换成功后将返回一个新的票据值,否则返回0。
  • unlock(long stamp) :该方法用于释放对应模式下的锁。