开发者社区> 问答> 正文

ReentrantLock的FairSync的tryAcquire的逻辑有哪些?

ReentrantLock的FairSync的tryAcquire的逻辑有哪些?

展开
收起
Aries- 2022-05-10 08:59:44 574 0
来自:阿里技术
1 条回答
写回答
取消 提交回答
  • 如果此时state(private volatile int state)是0,那么就表示这个时候没有人占有锁。但因为是公平锁,所以还要判断自己是不是首节点,然后才尝试把状态设置为1,假如成功的话,就成功的占有了锁。2如果此时状态不是0,那么再判断当前线程是不是锁的owner,如果是的话,则state 递增,当state溢出时,会抛错。如果没溢出,则返回true,表示成功获取锁。上述都不满足,则返回false,获取锁失败。

    2022-05-10 22:52:58
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载