内容来自《收割 Offer:互联网大厂面经》
公平锁是指多个线程竞争锁时直接进入队列排队,根据申请锁的顺序获得锁,先到先得。而非公平锁则是多个线程竞争锁时,首先尝试直接抢锁,失败后再进入等待队列。
使用公平锁,先到先得,线程获取锁时不会出现饥饿现象。使用非公平锁,整体的吞吐效率比较高。
ReentrantLock 默认是非公平锁,在构造方法中传入参数 true 则为公平锁;Synchronized是非公平锁。