我正在将ActiveMQ 5.5与嵌入式代理一起使用。所有消息都是非持久性的。 Producer和Consumer都在同一个JVM中运行。 咨询支持已被禁用。
一切都很好。我的问题是这些“调度程序”线程作为守护程序线程运行,以及它们为什么不运行 终止。
我运行了一个测试,我创建了大约10个消费者(没有生产者开始)并关闭它们。我已经证实了这一点 我的消费者通过使用咨询支持等成功关闭......
因此,尽管消费者成功关闭,我看到为每个消费者创建了一个调度程序守护程序线程, 即使我等了很长时间,也没有终止。
为什么会这样?有什么我不做的吗?
这是我的堆栈在Eclipse中的样子......有10个守护程序调度程序线程,每个都为消费者创建。
Daemon Thread [ActiveMQ Broker[MDASJ_BROKER] Scheduler] (Running)
Thread [New I/O server boss #1 ([id: 0x008730b8, /0.0.0.0:5555])] (Running)
Thread [DestroyJavaVM] (Running)
Daemon Thread [ActiveMQ Task-1] (Running)
Daemon Thread [BrokerService[MDASJ_BROKER] Task-1] (Running)
Daemon Thread [ActiveMQ Task-2] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:1] Scheduler] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:2] Scheduler] (Running)
Thread [New I/O server worker #1-1] (Running)
Daemon Thread [ActiveMQ Task-3] (Running)
Thread [New I/O server worker #1-2] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:3] Scheduler] (Running)
Thread [New I/O server worker #1-3] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:4] Scheduler] (Running)
Thread [pool-4-thread-4] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:5] Scheduler] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:6] Scheduler] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:7] Scheduler] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:8] Scheduler] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:9] Scheduler] (Running)
Daemon Thread [ActiveMQConnection[ID:Sprouts-53743-1316899960679-1:10] Scheduler] (Running)