Semaphore 释放许可逻辑
2022-01-02 00:35:56 0 举报
Semaphore 释放许可逻辑
作者其他创作
大纲/内容
尝试获取共享锁
需要
释放许可
完事
tryReleaseShared1. 自旋2. 获取当前state ,也就是当前可用的许可3. CAS 设置之后可用的许可
获取锁成功?
判断是否可传播
不需要
自旋 判断head 的waitStatus 是否为-1如果线程为可唤醒 将waitStatus 设置为0唤醒线程(LockSupport.unpark)
跳转到线程被阻塞的地方
将队头出队
继续唤醒其他等待线程
继续阻塞
0 条评论
下一页