7

公共 int drainPermits():

获取并返回所有立即可用的许可证。返回: 获得的许可数量。

为什么有人想要从 Semaphore 获取然后立即释放所有可用的许可?如果他们想查看可用许可证的数量,为什么不使用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 回答