在JDK6中,什么情况下Semaphore.availablePermits() > x可以使用,其中x是new Semaphore(x)中提供的值?

这是否意味着Semaphore.release()被调用的次数大于Semaphore.tryAcquire()

最佳答案

是的,这确实意味着Semaphore.release()的调用次数比任何一种许可证获取方法(包括但不限于tryAquire())都要多。具体来说,这意味着某些线程释放了从未获得的许可。

但是,实际上这可能是完全正常的情况。如果以某种方式有更多的资源可用于执行该操作,则对于负责跟踪以向池中添加其他许可的线程非常有意义。

关于java - 当Semaphore.availablePermits()可以返回的值大于构造函数中声明的值吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22915675/

10-15 11:47