1、Semaphore计数信号量定义
理解:就是要给令牌池,可获取信号量(令牌或者许可)、放入信号量。常用于控制并发的线程数,也可用于池类资源的访问控制。
2、Semaphore用法api
-
构造方法
Semaphore(int permits)
:指定初始许可数Semaphore(int permits , boolean fair)
:指定是否公平模式
-
尝试获取许可
boolean tryAcquire(long timeout , TimeUnit unit)
boolean tryAcquire(int permits)
boolean tryAcquire(int permits, long timeout , TimeUnit unit)
-
获取许可
void acquire() throws InterruptedException;
:获取1个许可,可中断void acquire(int permits) throws InterruptedException;
:获取指定数量的许可,