Java ActiveMQ“调度程序”守护程序线程未终止

Java ActiveMQ“调度程序”守护程序线程未终止,java,message-queue,activemq,Java,Message Queue,Activemq,我正在使用带有嵌入式代理的ActiveMQ 5.5。所有消息都是非持久性的。生产者和消费者都在同一个JVM中运行。 咨询支持被禁用 一切正常。我的问题是关于这些调度程序线程作为守护进程线程运行,以及为什么它们不是 终止 我做了一个测试,在那里我创造了大约10个消费者,没有生产者启动并关闭他们。我已经证实了 通过使用咨询支持等,我的客户成功关闭了 所以,尽管消费者成功关闭,我看到为每个消费者创建了一个调度程序守护进程线程, 即使我等了很长时间,它也不会终止 为什么会这样?有什么我没做的吗 下面是我

我正在使用带有嵌入式代理的ActiveMQ 5.5。所有消息都是非持久性的。生产者和消费者都在同一个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) 

你为什么期望他们终止?也许ActiveMQ正在将它们集中起来供将来使用?这是公平的。有没有办法控制这个守护进程线程池的数量?我只是在猜测。我想说的是,你为什么在乎?如果ActiveMQ正在做它应该做的事情,那么就让它去做。如果您对ActiveMQ在消息传递方面的行为方式有问题,那么就提出一个问题。我关心这个问题,因为如果它将为每个使用者创建一个线程,那么如果我有1000个使用者,那么这是不可伸缩的。我希望能够至少控制线程池。然后尝试添加1000个使用者,看看是否有线程问题,或者更好的是,10000个。不要假设你能从10个消费者中推断出1000个消费者的表现。就我个人而言,我使用多达500-600个并发使用者运行ActiveMQ,没有任何问题,尽管我从未真正检查过线程的使用情况。