java并发编程,lock(),trylock(),lockInterruptibly()的区别

首先lock是一种用于共享变量同步的手段,与synchronized不同,它需要显式的上锁和解锁。

lock提供的api接口中有几个值得注意的地方:

lock优先获取锁,只要拿不到锁就一直在阻塞状态,一直阻塞到获取到锁。

trylock则是就尝试一次,拿到了返回true,没拿到返回false,带时间限制的话拿不到会等一会,超出时间限制还没拿到才会返回false。

lockInterruptibly和lock类似,也是一直尝试获取锁,只要没获取到就一直阻塞,直到获取到锁。但是线程会响应中断命令,如果有其他线程发送了中断(Interrupt)指令,那该线程会中断,放弃获取锁,去throw InterruptedException

相关推荐
代码不加糖16 小时前
Proxy能够监听到对象中的对象的引用吗?
开发语言·前端·javascript
charlie11451419117 小时前
现代C++指南:Lambda,让我们用另一种方式持有函数
开发语言·c++
один but you17 小时前
const和constexpr常量表达式
java·前端·javascript
码云数智-大飞17 小时前
RAII 与智能指针深度拆解
java·前端·算法
云烟成雨TD17 小时前
Agent Scope Java 2.x 系列【19】Harness:从零搭建 MySQL 文件系统
java·人工智能·agent
qq36219670517 小时前
阿里裁员新消息(2026最新动态汇总)
java·开发语言·前端
a11177617 小时前
“黑夜流星“个人引导页 网页html
java·前端·html
砚底藏山河17 小时前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven
.千余17 小时前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
代码改善世界17 小时前
【C++进阶】C++11:列表初始化、右值引用与移动语义、完美转发全解析
java·开发语言·c++