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