公平锁/非公平锁
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395500.html
公平锁
公平锁是指多个线程按照申请锁的顺序来获取锁
非公平锁
非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁;有可能会造成优先级反转或者线程饥饿现象。非公平锁的优点是吞吐量比公平锁大。
ReentrantLock
ReentrantLock可以通过构造函数指定该锁是否是公平锁,默认是非公平锁。
Synchronized
Synchronized是一种非公平锁,并不像ReentrantLock是通过AQS来实现线程调度,所以没有办法使其变成公平锁。
强者自救 圣者渡人