Semaphore 就是一个信号量,它的作用是限制某段代码块的并发数。Semaphore
有一个构造函数,可以传入一个 int 型整数 n,表示某段代码最多只有 n 个线程可
以访问,如果超出了 n,那么请等待,等到某个线程执行完毕这段代码块,下一个
线程再进入。由此可以看出如果 Semaphore 构造函数中传入的 int 型整数 n=1,
相当于变成了一个 synchronized 了。