Java信号量tryAcquire在高负载时不支持超时

时间:2017-07-11 16:49:11

标签: java semaphore

在我们的代码中,我们使用超时值调用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) 

0 个答案:

没有答案