首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java lock
订阅
苏肖雄
更多收藏集
微信扫码分享
微信
新浪微博
QQ
6篇文章 · 0订阅
死磕java concurrent包系列(六)基于AQS解析信号量Semaphore
这个结构和ReentrantLock基本上完全一致,Semaphore内部同样存在继承自AQS的内部类Sync以及继承自Sync的公平锁(FairSync)和非公平锁(NofairSync),从这点也足以说明Semaphore的内部实现原理也是基于AQS并发组件的。 在之前的文…
死磕java concurrent包系列(五)基于AQS的条件队列把LinkedBlockingQueue“扒光”
LinkedBlockingQueue是一个基于链表的阻塞队列,实际使用上与ArrayBlockingQueue完全一样,我们只需要把之前烤鸡的例子中的Queue对象替换一下即可。如果对于ArrayBlockingQueue不熟悉,可以去看看https://juejin.im/…
死磕java concurrent包系列(四)基于AQS的条件队列彻底理解ArrayBlockingQueue
peek():获取但不移除此队列的头;如果此队列为空,则返回 null。 这就是阻塞队列基本的增删查方法,接下来我们看一下如何使用它。 ArrayBlockingQueue中的元素存在公平访问与非公平访问的区别,对于公平访问队列,被阻塞的线程可以按照阻塞的先后顺序访问队列,即先…
死磕java concurrent包系列(二)基于ReentrantLock理解AQS同步队列的细节和设计模式
之前介绍过并发问题的解决方式就是一般通过锁,concurrent包中最重要的接口就是lock接口,它可以显示的获取或者释放锁,对于lock接口来说最常见的实现就是ReetrantLock(可重入锁),而ReetrantLock的实现又离不开AQS。 https://juejin…
死磕java concurrent包系列(三)基于ReentrantLock理解AQS的条件队列
上一篇我们讲了AQS中的同步队列队列,现在我们研究一下条件队列。 在java中最常见的加锁方式就是synchorinzed和Reentrantlock,我们都说Reentrantlock比synchorinzed更加灵活,其实就灵活在Reentrantlock中的条件队列的用法…
死磕java concurrent包系列(一)从乐观锁、悲观锁到AtomicInteger的CAS算法
这篇文章主要是为了让大家通过乐观锁和悲观锁出发,理解CAS算法,因为CAS是整个Concurrent包的基础。 悲观锁:悲观的认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,synchronized关键字和…