在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/