-
(1) 在ReentrantLock的构造函数中可以指定创建公平性的锁还是非公平性的锁
/** * Creates an instance of {@code ReentrantLock} with the * given fairness policy. * * @param fair {@code true} if this lock should use a fair ordering policy */ public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); }
(2)
公平锁, 线程将按照它们请求锁的顺序获得锁;
非公平锁, 如果一个线程请求它, 并且在发出请求的同时恰好锁的状态变为可用, 则这个线程__“插队”__获得这个锁
(3) 非公平锁的性能一般好于公平锁
其中一个原因是__恢复一个线程到这个线程真正开始运行中间存在时间差__, 非公平锁可以利用这段时间就把锁获得到
chapter13_显式锁_3_公平性
最新推荐文章于 2024-09-23 19:28:37 发布