ReentrantLock
ReentrantLock作用和synchronized作用一样。但是比synchronized要更灵活,扩展功能更强。支持多路通知。
Condition类中的await相当于Object类中的wait;
Condition类中的signal相当于Object类中的notify;
Condition类中的signalAll相当于Object类中的notifyAll;
公平锁和非公平锁
公平锁:线程获取锁的顺序是按照线程加锁的顺序来分配的。
非公平锁:抢占式的。
ReentrantReadWriteLock读写锁
ReentrantLock具有完全互斥排他的效果,但是效率会比较低,ReentrantReadWriteLock效率比较高。
读写锁包含两种锁,读锁(共享锁)、写锁(排他锁)。多个读锁之间不互斥,读锁和写锁互斥,写锁和写锁互斥。