![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fe0b2ddf8f8ef1df1968adf009980ed1.png)
01 Semaphore
Semaphore 的作用就是控制某段程序线程并发执行的数量。这比 sychronized 功能更加强大和方便。
Semaphore 有个一个参数为 permits 的构造函数。(permist 指的是同一时间内允许多少个线程同时执行 acquire()和 release()之间的代码。
...
private final Semaphore semaphore = new Semaphore(1);
...
public void work() {
...
semaphore.