1,Semaphore源码分析
1)内部类Sync实现了AQS。
image.png使用AQS的volatile state属性,代表permits令牌数。
2)构造Semaphore
image.png
3)共享锁获取
从Semaphore中获取一个令牌
image.png
image.png
image.png
4)共享锁的释放
image.png
image.png
image.png
2,Semaphore使用
信号量通常用于限制访问物理或者逻辑资源的线程数(通过state值)。初始化1时,作为二元信号量,只有0|1个permis。
1)Semaphore流控
image.png
网友评论