0
我正在使用java服務器應用程序中的jWebsocket lib執行一些壓力測試(每分鐘有數千個連接),並且在一段時間後,該進程完全充滿了jWebsocket線程,例如以下:jWebsocket大量停放的線程(等待)
"jWebSocket TCP-Engine NIO writer" prio=10 tid=0x0000000000bf6000 nid=0x2eb9 waiting on condition [0x00007f1533bd9000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000062ab06e80> (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.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
(上面的輸出是從一個線程轉儲檢索)
有沒有人遇到這個問題?任何提示找到解決方案?
謝謝!
編輯。
最大的問題是線程永遠不會被終止並保持活動狀態,直到應用程序終止。
我忘了提一個非常重要的注意事項:)線程不被破壞,直到應用程序保持活力重新啓動。 –
我爲你提供了「殺死」解決方案以防萬一。你看到的是完全正常的,線程正在等待新任務,給他們工作要做,他們將開始運行你的任務 – hoaz