Semaphore的概念及基本用法
Semaphore这个英文单词的意思是信号灯,即发送信号的那种灯。Java并发工具包中的Semaphore类则是线程之间互相发送信号的工具。我们可以把Semaphore看作一个包含多个许可(permit)的集合,例如一个代表5个许可的Semaphore、6个许可的Semaphore等等(为便于表达,后文用字母P表示许可)。Semaphore上的acuqire操作申请P,而release操作则产生P,Semaphore可用于追踪可用资源的个数。
用法1: 基本用法(使用步骤):
1. 在代码中的某个地方创建Semaphore(第2个构造参数是公平策略)
Semaphore semaphore = new Semaphore(5, false);
2. 生产者负责调用Semaphore.release,往Semaphore中增加P。
3. 消费者负责调用Semaphore.acquire,从Semaphore取出P。