如何获取java中的所有许可证?

时间:2016-06-21 16:28:27

标签: java multithreading semaphore

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

Java中是否有任何方法可以做到这一点?

1 个答案:

答案 0 :(得分:4)

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

致电drainPermits()将获得当前可用的许可并立即返回。

获取信号量的所有许可的概念"没有意义。 Semaphore创建了初始免费许可数量,但您可以release()个额外许可,然后acquire()。因此,您的应用程序应跟踪其希望分配的许可数量,并仔细协调acquire()release()调用,以确保该数字不会更改。