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条)