ReentrantLock 提供了公平锁 和非公平锁的实现,
- 公平锁: ReentrantLock pairLock =new ReentrantLock(true),公平锁获取锁的顺序是按照线程请求锁的时间早晚来决定的,也就是先到先得
- 非公平锁: ReentrantLock pairLock =new ReentrantLock(fasle),默认非公平锁,非公平锁则在运行时闯入,不定是先到先得
独占锁和共享锁的实现:
- ReentrantLock就是以独占方式实现的
- ReadWriteLock 独享锁是共享锁
可重入锁和非可重入锁:
- 可重入锁:当一个线程要获取一个被其他线程持有的独占锁时,该线程就会被阻塞,那么当一个线程再次获取它自己已经获取的锁时不会被阻塞,那么说该锁是可重入的,synchronized内部锁是可重入锁