ReentrantReadWriteLock类和ReentrantLock类的区别
来源:互联网 发布:access导入sql server 编辑:程序博客网 时间:2024/05/31 19:06
(http://blog.csdn.net/kai_wei_zhang/article/details/8197061)
java.util.concurrent.locks包定义了两个锁类,ReentrantLock和ReentrantReadWriteLock类。
当有很多线程都从某个数据结构中读取数据而很少有线程对其进行修改时,后者就很有用了。在这种情况下,允许读取器线程共享访问是合适的。当然,写入器线程依然必须是互斥访问的
下面是使用读/写锁的必要步骤:
(1) 创建一个ReentrantReadWriteLock对象
private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
(2)抽取读锁和写锁:
private Lock readLock = rwl.readLock();//得到一个可被多个读操作共用的读锁,但它会排斥所有写操作 private Lock writeLock = rwl.writeLock();//得到一个写锁,它会排斥所有其他的读操作和写操作
(3) 对所有访问者加读锁
public double getTotalBalance(){ readLock.lock(); try{...}; finally{readLock.unlock();} }对所有修改者加写锁
public void transfer(){ writeLock.lock(); try{...}; finally{writeLock.unlock();} }
0 0
- ReentrantReadWriteLock类和ReentrantLock类的区别
- ReentrantReadWriteLock类和ReentrantLock类的区别
- ReentrantReadWriteLock & ReentrantLock & Synchronized 区别
- Java ReentrantLock和ReentrantReadWriteLock
- ReentrantLock和ReentrantReadWriteLock使用介绍
- 多线程并发中ReentrantLock和ReentrantReadWriteLock的使用
- Java多线程synchronized、ReentrantLock、ReentrantReadWriteLock 和StampedLock 的对比
- java 并发类semaphore countdownlatch cyclicbarrier reentrantlock condition reentrantreadwritelock
- ReentrantLock重入锁和ReentrantReadWriteLock读写分离锁
- 多线程锁的使用(ReentrantLock/Condition/ReentrantReadWriteLock)
- Java Concurrency ReentrantReadWriteLock和CopyOnwriteArrayList的区别
- ReentrantLock和Synchronized的区别
- ReentrantLock 和synchronized的区别
- synchronized和ReentrantLock的区别
- synchronized和ReentrantLock的区别
- synchronized和ReentrantLock的区别
- synchronized和ReentrantLock的区别
- Synchronized 和Reentrantlock 的区别
- iOS 打包静态库放在APP上报错
- Attribute is missing the Android namespace prefix 错误小结
- 线性表/链表/队列-1
- Mysql技术内幕索引部分
- MyWidget MyLabel-- 重写 -- 双击/单击/移动/事件
- ReentrantReadWriteLock类和ReentrantLock类的区别
- List集合sort
- wegwe3g23
- es 学习 5 DSL mapping 使用 案例
- 关于IPC的一点愚见
- AndroidStudio安装配置详细过程
- 设计模式之观察者模式
- TS流分析
- leetcode_c++:树:Count Complete Tree Nodes(222 )