异常如下:
生产者线程,较多,其中一个栈如下
"http-thread-pool-8090(1) SelectorRunner" daemon prio=10 tid=0x00007f70c001b800 nid=0x3bb waiting on condition [0x00007f71b45ce000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.ArrayBlockingQueue.put(ArrayBlockingQueue.java:324)
消费者线程,只有一个,线程栈如下:
"Async-Log-Thread" prio=10 tid=0x00007f71d4ade800 nid=0x3b0 runnable [0x00007f71b51ed000]
java.lang.Thread.State: RUNNABLE
at java.lang.Thread.yield(Native Method)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.transferAfterCancelledWait(AbstractQueuedSynchronizer.java:1709)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2079)
at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:389)
http-thread-pool线程向ArrayBlockingQueue队列中写入,put操作卡住了。
说明这里队列满了,但发现对应用消费线程却卡用poll操作上。但又不是 hang死,cpu很高,该问题有没有什么解决思路?
各路大神,请帮助。