重入锁ReentrantLock的nonfairTryAcquire方法再次获取同步状态处理逻辑的疑问

wjqwei wjqwei 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
重入锁ReentrantLock的nonfairTryAcquire方法再次获取同步状态的处理逻辑是通过判断当前线程是否为获取锁的线程来决定获取操作是否成功,如果是获取锁的线程再次请求,则将同步状态值进行增加并返回true,表示获取同步状态成功。
那么为什么不能在判断当前线程是获取锁的线程再次请求直接返回true,而要将同步状态值加1,同步状态值加1的实际意义是什么?
...全文

相关推荐

教你完全理解ReentrantLock重入锁

1. ReentrantLock的介绍 ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。在java关键字synchronized隐式支持重入性(关于synchronized可以看这篇文章),synchronized通过获取自增,释放自减的方式实现重入。与此同时,ReentrantLock还支持公平锁和非公平锁两种方式。 那么,要想完完全全的弄懂ReentrantLock的话,主要也就是ReentrantLock同步语义的学习:1. 重入性的实现原理;2. 公平

weixin_38665775

ReentrantLock源码解析(二)

1 数据结构 ReentrantLock是可重入锁,又分为公平锁和非公平锁。类图如下: 1.1 AQS源码解析 https://blog.csdn.net/qq_34125999/article/details/105343472 1.2 Sync /** * ReentrantLock 基础结构 */ abstract static class Sync extends AbstractQueuedSynchronizer { private static final long serialVersionUID = -5179523762034025860L; /**

weixin_38747233

ReentrantLock源码的使用问题详解.docx

什么是公平锁和非公平锁 公平与非公平的一个很本质的区别就是,是否遵守FIFO(也就是先来后到)。当有多个线程来申请锁的时候,是否先申请的线程先获取锁,后申请的线程后获取锁?如果是的,则是 公平锁 ,否则是 非公平锁 。 更准确地说,先申请锁的线程先获得锁竞争的权利 。对于公平的排他锁而言,先申请锁的线程会先获取锁,但是对于公平的共享锁而言,先申请锁的线程会先拥有获取锁竞争的权利,其他等待共享锁的线程也会被唤醒,有可能后唤醒的线程先获取锁。

小兔子平安

Java 多线程与并发(11-26)-JUC锁- ReentrantLock详解.pdf

Java 多线程与并发(11_26)-JUC锁_ ReentrantLock详解

weishaoonly

java并发之ReetranLock

java并发之ReetranLock是并发包中的技术,在并发中常用到

weixin_42028722
评论 3
收藏 已收藏
分享
返回顶部
wjqwei
Java SE 62,620 成员 307,251 内容