读写锁 ReentrantReadWriteLock 与 互斥锁 的效率
ReentrantReadWriteLock
一种支持一写多读的同步锁,读写分离,可分别分配读锁、写锁
支持多次分配读锁,使多个读操作可以并发执行
互斥规则
写 - 写:互斥,阻塞
读 - 写:互斥,读阻塞写、写阻塞读
读 - 读:不互斥,不阻塞
在读操作远远高于写操作的环境中,可在保证线程安全的情况下,提高运行效率
我们可以写一个例子,就是读的操作多,写的操作少,我们可以比较一下,使用读写锁和互斥锁的运行的效率
读写锁的代码
测试代码:
运行结果
测试互斥锁的代码:其实就是修改了锁为lock,其他都没有改变
测试结果:
可以发现 读写锁 对效率的提升有很大的帮助