Semaphore
计数信号量 是控制多线程情况下共享资源的计数器, 本质上和 countDownLatch 一样, 是一个多线程共享锁
基于 AQS 实现
- 实现本质还是通过操作 AQS 的 state 实现多线程的通信交互
- 相比CountDownLatch的实现,Semaphore可以对state进行数量的增加、减少的单个或多个操作
- 获取共享变量的实现,即获取锁的实现提供了公平锁、非公平锁的实现,选择性更多
- 释放锁即变更共享变量递增的实现,通过自旋锁和CAS配合完成,这与其他JUC并发工具如CountDownLatch类似