多线程Lock锁

1.可重入锁

如果锁具备可重入性,则称作为可重入锁。synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机制:基于线程的分配,而不是基于方法调用的分配。

多线程Lock锁

2. 读写锁

读写锁将对一个资源(比如文件、Map、List)的访问分成了2个锁,一个读锁和一个写锁。

读锁,可以让多个线程之间的读操作不会发生冲突。

ReadWriteLock就是读写锁,它是一个接口,ReentrantReadWriteLock实现了这个接口。

可以通过readLock()获取读锁,通过writeLock()获取写锁。

多线程Lock锁

多线程Lock锁