isrun java用法_Java多线程问题--方法isFair()、isHeldByCurrentThread()和isLocked()的用法和区别...

本文详细介绍了Java中ReentrantLock的isFair()、isHeldByCurrentThread()和isLocked()三个方法的用途和区别。isFair()判断锁是否为公平锁,isHeldByCurrentThread()检查当前线程是否持有锁,isLocked()则检测是否有线程持有锁。通过示例代码展示了这三个方法在公平锁和非公平锁场景下的行为。
摘要由CSDN通过智能技术生成

本文内容部分引自《Java多线程编程核心技术》,感谢作者!!!

代码地址:https://github.com/xianzhixianzhixian/thread.git

方法isFair()、isHeldByCurrentThread()和isLocked()的用法和区别

1、lock.isFair()方法用来判断lock锁是公平锁还是非公平锁。公平锁是指,线程获得锁的顺序是按其等待锁的先后顺序来的,先来先获得FIFO。反之,非公平锁则是线程随机获得锁的,lock默认是非公平锁。

2、lock.isHeldByCurrentThread()的作用是查询当前线程是否保持此锁定,和lock.hasQueueThread()不同的地方是:lock.hasQueueThread(Thread thread)的作用是判断当前线程是否处于等待lock的状态。

3、lock.isLocked()的作用是查询此锁定是否由任意线程保持。

方法isFair()、isHeldByCurrentThread()和isLocked()的用法示例

ServiceIsFair.java

/**

* lock.isFair()方法用来判断lock锁是公平锁还是非公平锁

* @author: xianzhixianzhixian

* @date: 2019-01-21 20:43

*/

public class ServiceIsFair {

public ReentrantLock lock;

public ServiceIsFair(Boolean isFair) {

this.lock = new ReentrantLock(isFa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值