并发编程--使用读写锁实现同步数据访问

来源:互联网 发布:中修帝国主义知乎 编辑:程序博客网 时间:2024/05/21 23:31

锁机制最大的改进之一就是ReadWriteLock接口和它的唯一实现类ReentrantReadWriteLock。这个类有两个锁,一个是读操作锁,另一个是写操作锁。使用读操作锁可以允许多个线程同时访问锁内部的内容,但是使用写操作锁只允许一个线程进行。在一个线程执行写操作时,其他线程不能执行读操作。创建锁时还可以加上一个boolean参数,让等待越久的线程越早执行,保证锁的公平性。

下面通过一个银行账号存取钱的例子来看看读写锁的有趣之处



查看一下程序的运行结果:


看来这个结果不出乎我们的预料,首先写线程开始执行时,读线程不能执行,只有当写线程执行完才能执行,写线程执行完账号里的money编程1100,读线程可以同时运行,读出账号里的钱1100。

0 0
原创粉丝点击