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