抽象队列同步器
AQS 原理
1、AbstractQueuedSynchronizer
2、阻塞式锁、相关的同步器工具的框架
3、state 属性表示资源的状态
(1)子类需要定义如何维护这个状态,控制如何获取锁、释放锁
(2)getState:获取 state 状态
(3)setState:设置 state 状态
(4)compareAndSetState:CAS 机制设置 state 状态
(5)独占模式:只有一个线程能够访问资源
(6)共享模式:允许多个线程访问资源
4、提供基于 FIFO 的等待队列,类似于 Monitor 的 EntryList
5、条件变量来实现等待、唤醒机制,支持多个条件变量,类似于 Monitor 的 WaitSet
6、子类主要实现方法(默认抛出 UnsupportedOperationException)
(1)tryAcquire
(2)tryRelease
(3)tryAcquireShared
(4)tryReleaseShared
(5)isHeldExclusively
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战