Nolio NES Темы

Ожидается ли поведение нескольких потоков "Discovery Worker" и "Keep Alive" в состоянии WAITING в NES?

"DiscoveryWorker-10"
Id=62 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3c7f9371
    at sun.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3c7f9371
    at java.util.concurrent.locks.LockSupport.park(Unknown Source)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

"KeepAliveWorker-4"
Id=61 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5ba8febe
    at sun.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5ba8febe
    at java.util.concurrent.locks.LockSupport.park(Unknown Source)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

1 ответ

Решение

Да, это ожидается. Похоже, что эти потоки ожидают в пуле потоков, пока они не понадобятся для обнаружения или задачи поддержания активности.

Потоки, ожидающие долгое время в коде NiMi или Netty (должны быть видны в трассировке стека), могут означать, что существует какая-то проблема со связью. (например, NimiConnectionImpl является одним из классов, где потоки DiscoveryWorker ожидают записи в канал Netty)

Другие вопросы по тегам