ReadWriteLock
java.util.concurrent.locks
Interface ReadWriteLock所有已知实现类:
ReentrantReadWriteLock
public interface ReadWriteLock
A
ReadWriteLock
维护一对关联的locks
,一个用于只读操作,一个用于写入。read lock
可以由多个阅读器线程同时进行,只要没有作者。write lock
是独家的
为什么要使用:
希望更加细腻度的控制锁,读和写锁分离
未用锁之前的效果:
1 | class WriteRead { |
结果:
线程1开始写
线程2开始写 <–插队
线程2结束写 <–插队
线程1结束写
线程8开始写
线程9开始写
线程9结束写
线程8结束写
线程4结束写
线程7开始写
线程7结束写
线程6开始写…
加锁的效果:
1 | class WriteRead { |
结果:
线程3开始写
线程3结束写
线程7开始写
线程7结束写
线程0开始写
线程0结束写
线程1开始写
线程1结束写
线程2开始写
线程2结束写
线程4开始写
线程4结束写
线程6开始写
线程6结束写
线程5开始写
线程5结束写
线程8开始写
线程8结束写
线程9开始写
线程9结束写
ReadWriteLock这个接口很简单,只有一个实现类ReentrantReadWriteLock
java.util.concurrent.locks
Class ReentrantReadWriteLockjava.lang.Object
java.util.concurrent.locks.ReentrantReadWriteLockAll Implemented Interfaces:
Serializable , ReadWriteLock
public class ReentrantReadWriteLock
extends Object
implements ReadWriteLock, SerializableReadWriteLock
- | Modifier and Type | Class and Description |
| —————– | ———————————————————— |
|static class
|ReentrantReadWriteLock.ReadLock
该锁由方法readLock()
返回。 |
|static class
|ReentrantReadWriteLock.WriteLock
该锁由方法writeLock()
返回。 |
小唠嗑:
本章到这里就结束了,谢谢耐心看到这里的各位Boss,如果觉得有哪里说的不好的地方,还请高抬贵手多多原谅,不惜指教。
最后,谢谢!