公平锁/非公平锁

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395500.html

公平锁

公平锁是指多个线程按照申请锁的顺序来获取锁

非公平锁

非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁;有可能会造成优先级反转或者线程饥饿现象。非公平锁的优点是吞吐量比公平锁大。

ReentrantLock

ReentrantLock可以通过构造函数指定该锁是否是公平锁,默认是非公平锁。

Synchronized

Synchronized是一种非公平锁,并不像ReentrantLock是通过AQS来实现线程调度,所以没有办法使其变成公平锁。

原文地址:https://www.cnblogs.com/agilestyle/p/11395500.html