Skip to content

Semaphore

计数信号量 是控制多线程情况下共享资源的计数器, 本质上和 countDownLatch 一样, 是一个多线程共享锁

基于 AQS 实现

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

waitingresult.com