JAVA 8 并发增强 (2)乐观读
来源:互联网 发布:工程数据的内涵 编辑:程序博客网 时间:2024/05/17 07:46
/* * J8添加了StampedLock类,它用来实现乐观读。 首先调用tryOptimisticRead方法,此时会获得一个“印戳”。然后读取值并检查“印戳” * 是否仍然有效(例如其他线程已经获得了一个读锁)。如果有效,就可以使用这个值。如果无效,就会获得一个读锁(它会阻塞所有的写锁) */public class Vector {private int size;private Object[] elements;private StampedLock lock = new StampedLock();public Object get(int n) {long stamp = lock.tryOptimisticRead();Object[] currentElements = elements;int currentSize = size;if (!lock.validate(stamp)) {// 某个线程有了一个写锁stamp = lock.readLock();// 获得一个悲观锁?currentElements = elements;currentSize = size;lock.unlock(stamp);}return n < currentSize ? currentElements[n] : null;}}
0 0
- JAVA 8 并发增强 (2)乐观读
- JAVA 8 并发增强 (3)ConcurrentHashMap改进
- JAVA 8 并发增强 (6)并行数组
- Java基础&增强 并发
- JAVA SE 8 学习笔记(五)并发增强
- JAVA 8 并发增强 (4) ConcurrentHashMap批量操作
- JAVA 8 并发增强 (5) 线程安全的Set
- Java并发编程 之 乐观锁和悲观锁
- java学习系列2(并发锁问题-乐观锁与悲观锁以及乐观锁的一种实现方式-CAS)
- Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
- 乐观锁(处理并发)
- 并发乐观锁
- 乐观并发控制
- 并发与乐观锁
- JAVA 8 并发增强(1) 多线程修改某个计数器的方式
- java SE 增强2
- 《Java高并发程序设计》学习 --6.7. 原子类的增强
- 并发控制乐观锁Version
- UVA10881 Piotr's Ants (模拟)
- EventBus源码阅读(6)-AbstractSubscriberInfo
- Java学习——Ubuntu下jdk的安装以及Java环境的配置
- 第一次写代码很简单的
- 插入排序的基本思想与实现代码
- JAVA 8 并发增强 (2)乐观读
- 错误页面测试
- webservice 客户端调用服务端出现401错误
- C++面试之__C++静态成员函数小结
- 关于LayoutInflater动态加载View到AbsListView和ViewGroup之间的区别
- 最长上升子序列LIS算法粗略讲解
- Javac编译与JIT编译
- UITableView上添加UITextView动态换行
- 美国大使馆面签预约中心网站上的小Bug-附hack方法