公平锁/非公平锁

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

 

公平锁

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

 

非公平锁

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

 

ReentrantLock

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

Synchronized

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

posted @ 2019-08-22 17:13  李白与酒  阅读(358)  评论(0编辑  收藏  举报