千家信息网

ReentrantLock是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"ReentrantLock是什么",在日常操作中,相信很多人在ReentrantLock是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Reent
千家信息网最后更新 2026年10月31日ReentrantLock是什么

这篇文章主要介绍"ReentrantLock是什么",在日常操作中,相信很多人在ReentrantLock是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ReentrantLock是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

codereview的时候看到有人创建了一个static的reentrantLock来使用,并且只是用到了lock()、unlock(), 应该是哪里错了吧? : (

我问了下自己:关于ReentrantLock我能说出来点儿什么?然后就去读了读API文档。: )

ReentrantLock是可查询、可定时、可中断的锁机制。(我还没理解什么是无条件的。)

它解决了内置锁(synchronized使用):不能中断正在等待获取锁的线程、必须在获得锁的代码块释放锁这样的问题。

1) "可查询"是通过tryLock()完成的。对内置锁来说,你一旦尝试获取锁就会被block直到拿到这个锁。这个阻塞方法对应到ReentrantLock的lock()方法。

2) 可定时是说,你可以给tryLock()方法传入一个超时时间。

3) 用lockInterruptibly()方法获取锁时如果被block,则是可以通过线程中断被终止的。

4) 一定不要忘记finally { unlock(); }

5) 可以通过构造参数创建公平锁。

6) 只有在你真的需要:可中断、可定时、可查询、公平队列、非块结构锁是再考虑,否则使用synchronized!

7) ReentrantLock还有一些其它getHoldCount(), getQueueLength()之类的方法,对于非并发库开发者来说知道就好。我可能一辈子也用不上这些API。

回到code review,看来我的困惑是对的。

下面是Lock接口定义的方法:

到此,关于"ReentrantLock是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

方法 学习 查询 可以通过 更多 线程 问题 帮助 实用 困惑 接下来 代码 参数 只是 只有 对内 开发者 接口 文档 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 科技金融是不是互联网金融 互联网金融 科技金融 中国 科技 互联网 紫鲸互联网科技 互联网科技缩写 电子科技大学互联网 天下捷融互联网科技 兼蜜互联网科技 互联网金融 科技创新 深圳卡尔迅互联网科技有限公司怎么样 济南和联互联网科技有限公司 玉溪互联网科技怎么选 恒生互联网科技指数跳水 电子科技大学互联网创业大赛 中国互联网公司排名锤子科技 广州百诚互联网科技有限公司官网 从那以后互联网科技有限公司 互联网科技接地气 云南互联网科技学费 湖南永感互联网科技有限公司 中国互联网科技工作委员会毛军 唐信互联网科技 大连 科技类的互联网平台 互联网科技研发水平 乌苏新华互联网科技做什么的 翼展科技 首家互联网医院 互联网科技和法律行业 抖集互联网科技技术咨询 北京军民互联网科技公司
0