Como é o despejo de encadeamento quando a JVM passou algum tempo no GC

Ao criar um perfil do aplicativo Java, observo um fato interessante. Quando a JVM está no GC, o dump do encadeamento em espiral da morte se parece com:

"1304802943@qtp-393978767-9985" prio=10 tid=0x00007f3ed02dd000 nid=0x74e7 in Object.wait() [0x000000004febb000]
 java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)
    - locked <0x00000007aed40048> (a org.mortbay.thread.QueuedThreadPool$PoolThread)

"26774405@qtp-393978767-9984" prio=10 tid=0x00007f3ee4b37000 nid=0x74e6 in Object.wait() [0x0000000045d1a000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)
    - locked <0x00000007aed83aa0> (a org.mortbay.thread.QueuedThreadPool$PoolThread)

"764808089@qtp-393978767-9983" prio=10 tid=0x00007f3ee4c50000 nid=0x74e5 in Object.wait() [0x000000004ad6a000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)
    - locked <0x00000007aed5c448> (a org.mortbay.thread.QueuedThreadPool$PoolThread)

Então, existem muitos tópicos emTIMED_WAITING Estado. Teoricamente, essa situação pode ser facilmente encontrada em aplicativos que funcionem normalmente (o aplicativo simplesmente não possui solicitações recebidas no momento), mas não consigo encontrar sequer um encadeamento de despacho de solicitação única fazendo algo útil (a taxa de acerto nominal é de cerca de 100 hps).

Esse comportamento tem algo a ver com o GC ou é apenas coincidência?

questionAnswers(3)

yourAnswerToTheQuestion