在Java的并发包中,Semaphore类表示信号量.Semaphore内部主要通过AQS(AbstractQueuedSynchronizer)实现线程的管理.Semaphore有两个构造函数,参数permits表示许可数,它最后传递给了AQS的state值.线程在运行时首先获取许可, 如果成功,许可数就减1,线程运行,当线程运行结束就释放许可,许可数就加1. 如果许可数为0,则获取失败,线程位于AQS的等待队列中,它会被其它释放许可的线程唤醒.在创建Semaphore对象的时候还可以指定它的…