Semaphore
翻译:
信号量
解释:
- 信号量通常用于限制线程数,而不是访问某些(物理或逻辑)资源。 例如,这是一个使用信号量来控制对一个项目池的访问的类
用法
可以限制线程的使用次数
public static void main(String[] args) {//限制线程数量为3Semaphore semaphore = new Semaphore(3);for (int i = 0; i < 6 ; i++) {new Thread(() ->{//获取资源try {semaphore.acquire();} catch (InterruptedException e) {throw new RuntimeException(e);}finally {semaphore.release();}System.out.println("进来了"+Thread.currentThread().getName());},String.valueOf(i)).start();}
}
- 限制数量是3,表示如果不释放资源的情况下只能一次运行三个进程,但是我们每次都释放了资源,所以并没有出现明显的区别