7

公共のint型drainPermits():

すぐに利用できるすべての許可を取得して返します。戻り値: 取得した許可の数。

セマフォから使用可能なすべての許可を取得してすぐに解放したいのはなぜですか? 利用可能な許可の数を確認したい場合は、なぜ使用しないのSemaphore.availablePermits()ですか?

4

1 に答える 1

14

それはそれらを解放しません。それはそれらすべてを取得します、それだけです:

Semaphore s = new Semaphore(10);
System.out.println(s.availablePermits()); // 10
s.drainPermits();
System.out.println(s.availablePermits()); // 0
于 2012-12-03T22:45:51.217 に答える