第三篇(2):lock的学习与使用
学习 lock 第三篇 使用
2023-09-27 14:19:46 时间
今天我们来学习并发包下的Lock(锁)的知识。之所以Java在有synchronized的情况下,还提供基于lock接口实现的锁。是由于lock有一些synchronized没有特性。可以再发生死锁时相应中断,释放锁。
lock的类图
从该类图我们可以看出ReentrentLock实现了Lock接口,其对受保护资源的读写都要加锁。同时加锁之后需要手动的释放锁。由Lock产生Condition实例。
另外一个接口是ReentrentReadWriteLock,其内部维护了一个读锁ReadLock和一个写锁WriteLock。其中ReadLock是并发的,而WriteLock是同步的,同一时间只能有一个线程持有WriteLock。
lock 与synchronized 的区别
上面说可以通过lock来破坏不可抢占的条件,那么lock为啥可以支持呢?因为lock锁有如下三个特性:
//能够响应中断
void lockInterruptibly(
相关文章
- Intel汇编语言程序设计学习-第四章 数据传送、寻址和算术运算-下
- 1-吴恩达机器学习Deeplearning.ai课程,监督学习
- Spark修炼之道——Spark学习路线、课程大纲
- 五二不休息,今天也学习,从JS执行栈角度图解递归以及二叉树的前、中、后遍历的底层差异
- 我是如何学习NodeJs
- 硬核Go语言学习万字长文之上篇(两篇文章学会Go语言)
- (数据科学学习手札76)基于Python的拐点检测——以新冠肺炎疫情数据为例
- 大数据学习——点击流日志每天都10T,在业务应用服务器上,需要准实时上传至(Hadoop HDFS)上
- 《Scala机器学习》一一3.2 理解Spark的架构
- 基于VGG对五种类别图片的迁移学习
- 通过机器学习进行恶意软件分析
- HTTP协议——学习资料小结
- 步进电机学习
- 知识图谱入门学习笔记(三)-知识建模
- css基础教程【学习笔记】
- 机器学习——支持向量机SVM之线性模型
- 快速入门Linux,按照分类整理的常用命令及其含义和作用,方便系统的学习和使用
- 机器学习原理篇:基础数学理论 Ⅱ
- 【深度学习之美】全面连接困何处,卷积网络见解深(入门系列之九)