并发编程--使用读写锁实现同步数据访问
2014-09-01 20:53
429 查看
锁机制最大的改进之一就是ReadWriteLock接口和它的唯一实现类ReentrantReadWriteLock。这个类有两个锁,一个是读操作锁,另一个是写操作锁。使用读操作锁可以允许多个线程同时访问锁内部的内容,但是使用写操作锁只允许一个线程进行。在一个线程执行写操作时,其他线程不能执行读操作。创建锁时还可以加上一个boolean参数,让等待越久的线程越早执行,保证锁的公平性。
下面通过一个银行账号存取钱的例子来看看读写锁的有趣之处
查看一下程序的运行结果:
看来这个结果不出乎我们的预料,首先写线程开始执行时,读线程不能执行,只有当写线程执行完才能执行,写线程执行完账号里的money编程1100,读线程可以同时运行,读出账号里的钱1100。
下面通过一个银行账号存取钱的例子来看看读写锁的有趣之处
查看一下程序的运行结果:
看来这个结果不出乎我们的预料,首先写线程开始执行时,读线程不能执行,只有当写线程执行完才能执行,写线程执行完账号里的money编程1100,读线程可以同时运行,读出账号里的钱1100。
相关文章推荐
- 【Java并发编程实战】– 使用读写锁实现同步数据访问 lock_2
- 并发编程实战 2.1. 使用synchronized实现同步
- 并发编程--使用锁实现同步
- java并发编程之线程同步基础(二)使用锁实现同步
- 并发编程--使用synchronized实现同步方法
- 【Java并发编程实战】– 使用非依赖属性实现同步
- 并发编程--在同步代码中使用条件实现生产者消费者
- 【Java并发编程实战】– 使用锁实现同步 lock_1
- 并发编程 18—— 使用内置条件队列实现简单的有界缓存
- 并发编程(一): POSIX 使用互斥量和条件变量实现生产者/消费者问题
- C#多线程编程之使用ReaderWriterLock类实现多用户读与单用户写同步的方法
- 【Java并发编程】:使用wait/notify/notifyAll实现线程间通信的几点重要说明
- 【Java并发编程】之十:使用wait/notify/notifyAll实现线程间通信的几点重要说明(r)
- 一步步学习java并发编程模式之Active Object模式(五) 使用JDK的内置实现
- java并发编程学习: 阻塞队列 使用 及 实现原理
- Java并发和多线程4:使用通用同步工具CountDownLatch实现线程等待
- 使用读写锁实现同步数据访问
- 深入学习java并发编程:线程池ThreadPoolExecutor实现以及使用
- 【Java并发编程】之十:使用wait/notify/notifyAll实现线程间通信的几点重要说明
- Java并发编程笔记 使用阻塞队列实现生产者-消费者模型