Java多线程公平锁与非公平锁

2017-01-13 15:02:05来源:csdn作者:IsResultXaL人点击

公平锁(Fair):加锁前检查是否有排队等待的线程,优先排队等待的线程,先来先得 非公平锁(Nonfair):加锁时不考虑排队等待问题,直接尝试获取锁,获取不到自动到队尾等待

非公平锁性能比公平锁高5~10倍,因为公平锁需要在多核的情况下维护一个队列

首先Java中的ReentrantLock 默认的lock()方法采用的是非公平锁。

这个时候你会发现打印是有序的,排队在前面的线程直接获取锁。这就是公平锁

当把true改成false之后,线程3先进来,却发现被线程4获得锁了,这就是非公平锁


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台