如何获得java的所有通行证?

How to acquire all the permits in java?

我正在尝试使用信号量创建有界队列,我需要获得信号量的所有许可。

Java中有什么方法可以做到这一点吗?

调用 acquire(int) 将阻塞,直到获得指定数量的许可。

调用 drainPermits() 将立即获得当前可用的任何许可并return。

收购 "all permits for a semaphore" 的想法真的没有意义。 Semaphore 是用初始数量的免费许可创建的,但您可以 release() 额外的许可,然后 acquire() 它们。因此,您的应用程序应跟踪它希望分配的许可数量,并仔细协调 acquire()release() 调用以确保该数量未更改。