使用シナリオ:一般的に、限られたリソースを使用し、同時スレッドの最大数を制限するために使用されます。
- セマフォの最大数を設定します。Semaphore semaphore = new Semaphore(3);
- セマフォを取得します。
- semaphore.acquire(); //セマフォを取得
- semaphore.acquire(3); //複数のライセンスを取得
- semaphore.tryAcquire(3); //複数のライセンスを取得しようとします
- semaphore.tryAcquire(5、TimeUnit.SECONDS); //指定された時間内に権限を取得します
- セマフォの解放:semaphore.release();
默认情况下,信号量是非公平性的(先等待先执行为公平。类似于买东西的时候大家排队付款,先来的先付款是公平的。但是这时候有人插队,那就是非公平的)