2012-12-03 112 views
3

公衆詮釋drainPermits():Semaphore.drainPermits()有什麼意義?

獲取並返回立即可用的所有許可。返回:獲得的許可證數量。

爲什麼有人想要獲得,然後立即釋放信號量的所有可用許可?如果他們想查看可用許可證的數量,爲什麼不使用Semaphore.availablePermits()

回答

5

它不釋放它們。它獲得了全部,這就是全部:

Semaphore s = new Semaphore(10); 
System.out.println(s.availablePermits()); // 10 
s.drainPermits(); 
System.out.println(s.availablePermits()); // 0