今天看啥  ›  专栏  ›  西界__

JUC之公平锁和非公平锁

西界__  · 简书  ·  · 2020-12-29 09:56

文章预览

概念

<mark>公平锁是指多个线程按照申请锁的顺序来获取锁,采用先来后到哦,先来先服务的原则。老的线程排队使用锁,新线程仍然排队使用锁。</mark>

<mark>非公平锁多个线程按照上来就直接尝试占有锁,如果尝试失败就采用类似公平锁的方式。老的线程排队使用锁,但是无法保证新线程抢占已经在排队的线程的锁。</mark>

非公平锁的优点在于吞吐量比公平锁大。

并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁 默认是非公平锁

实例

我们经常使用到的锁是 ReentrantLock 我们可以查看它的源码,默认使用的是非公平锁。

也就是说 ReentrantLock 可自定义使用的是公平还是非公平锁,默认使用的是非公平锁。

对于synchronized而言 也是一种非公平锁.

………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览