public int drainPermits():
获取并返回所有可立即获得的许可。返回:获得的许可数量。
为什么有人想要获取并立即从信号量中释放所有可用的许可?如果他们想查看可用许可证的数量,为什么不使用Semaphore.availablePermits()
?
答案 0 :(得分:10)
它不会释放它们。它收集了所有这些,就是全部:
Semaphore s = new Semaphore(10);
System.out.println(s.availablePermits()); // 10
s.drainPermits();
System.out.println(s.availablePermits()); // 0