读写锁
来源:互联网 发布:希特勒南极 知乎 编辑:程序博客网 时间:2024/04/24 05:49
java.util.concurrent.locks包定义了两个锁,ReentrantLock类和ReentrantReadWriteLocklei。如果很多线程从一个数据结构读取数据而很少线程修改其中数据的话,后者是十分有用的。在这种情况下,允许读者线程共享访问时合适的。当然,写者线程依然必须是互斥访问的。
以下是使用读/写锁的必要步骤:
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(); }
}
4、对所有的修改者加写锁:
public void transfer(......)
{
writeLock.lock();
try { ...... }
finally { writeLock.unlock(); }
}
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- 读写锁
- Socket开发之通讯协议及处理
- C语言学习之路之六--------指针初学
- 192. Guilty consciences make man cowards. 做贼心虚
- Android 实现书籍翻页效果
- 编译错误
- 读写锁
- 基于C#的通信协议封包(附代码)
- LaTeX/尺寸
- sql的 INNER JOIN, left join,right join语法
- ROC曲线-阈值评价标准
- jQuery双色表格
- 一日一点RakNet(20)--NetworkIDObject
- linux内核链表使用
- 函数返回局部变量(转)