0
点赞
收藏
分享

微信扫一扫

StampedLock

alanwhy 2022-02-01 阅读 39

StampedLock

StampedLock使用必须遵循的模式

private final StampedLock sl = new StampedLock();

long stamp = sl.tryOptimisticRead();  // 非阻塞获取版本信息 使用乐观锁
copyVaraibale2ThreadMemory();           // 拷贝变量到线程本地堆栈
if(!lock.validate(stamp)){              // 校验
    long stamp = lock.readLock();       // 获取读锁
    try {
        copyVaraibale2ThreadMemory();   // 拷贝变量到线程本地堆栈
     } finally {
       lock.unlock(stamp);              // 释放悲观锁
    }

}
useThreadMemoryVarables();              // 使用线程本地堆栈里面的数据进行操作
举报

相关推荐

0 条评论