ReetrantLock是独占锁,一次只允许一个线程访问修改共享资源。我们经常会遇到这样的情况,需要经常读取共享资源,少了修改共享资源,这个时候我们用ReentrantLock并发效果就并不是那么nice了。JUC提供了一种读写锁,为我们很好的解决这一种场景: ReadWriteLock支持 读-写,读-读并发。禁止写-写并发。
java.util.concurrent.locks
接口 ReadWriteLock
- 所有已知实现类:
- ReentrantReadWriteLock
public interface ReadWriteLock { /** * Returns the lock used for reading. * * @return the lock used for reading */ Lock readLock(); //获取读锁 /** * Returns the lock used for writing. * * @return the lock used for writing */ Lock writeLock(); //获取写锁 }