Java线程转储中缺少线程

时间:2017-04-19 13:58:00

标签: java garbage-collection thread-dump

我正在使用一个线程,我设置一个名称“LegacyMsgConsumer-Main-Thread”来从MsgQueue获取消息,然后将它们放在ThreadPoolExecutor内处理。这个服务在开始时工作正常(我可以从显示消耗消息的mornitor看到),但是几个小时之后,显示消息消耗的监视器是0.我已经用两种方式转储了线程:jstack和jmap。我检查了两个线程转储: enter image description here 那些Legacy-Consumer-Pool是处理消息的ThreadPoolExecutor,它正在等待消息处理,但我找不到从MessageQueue(我命名为LegacyMsgConsumer-Main-Thread)获取消息的线程。这是我的代码。

  1. 为消息获取线程设置名称。

  2. 从messageQueue获取消息,这是在while循环中运行的

  3. 计算空消息的数量

  4. 睡眠线程,睡眠时间基于空信息的计数。

  5. ThreadPoolExecutor提交有效讯息以便处理。

  6. enter image description here

    我的问题是: LegacyMsgConsumer-Main-Thread线程在哪里?是垃圾收集了吗?

0 个答案:

没有答案