在我们的代码中,我们使用超时值调用Semaphore.tryAcquire(...)
。在负载很重的情况下,信号量tryAcquire
不会根据给定的超时值超时,因此很多线程将在这里停顿。
有没有人遇到过这个问题?
堆栈跟踪:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(Ab
stractQueuedSynchronizer.java:1033)
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(A
bstractQueuedSynchronizer.java:1326)
java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:414)