本帖最后由 谢洋 于 2013-2-25 19:12 编辑
这是api文档中描述:
1、ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作
。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。
2、所有 ReadWriteLock 实现都必须保证 writeLock 操作的内存同步效果也要保持
与相关 readLock 的联系。也就是说,成功获取读锁的线程会看到写入锁之前版本
所做的所有更新
我的理解是:被readLock上锁的代码可以同时被多个线程访问,如果是这样,那这跟没上锁好像没有区别?
假设有两段代码:一段可以并发访问(用readLock或不上锁),另一段每次只能被一个线程访问(用writerLock锁上),这样子行吗?如果可以并发访问那一段不上readLock可以吗?
第二句完全看不懂;
谁能给个详细的解答,最好有代码演示说明 |
|