消息队列和线程池之间有什么区别?
答案 0 :(得分:6)
Message Queue用于(异步)进程间通信,而Thread Pool用于在一组线程上运行多个任务。我无法想出一种比较它们的合理方法......它们在很多方面都与众不同。
答案 1 :(得分:2)
真正的问题是两者之间是否有任何相似之处。消息队列是一种数据结构,用于将消息从发送时间起保存到接收方检索并对其进行操作为止。
线程池是一个执行某种处理的线程池。线程池通常会附加某种线程安全队列,以允许您排队要完成的作业。这通常被称为“任务队列”而不是消息队列,尽管它通常包含某种描述需要完成的任务的消息。
答案 2 :(得分:0)
message queue
常用于分布式系统,thread pool
常用于单机。 btw thread pool
在内部使用阻塞队列。如果您使用 message queue
,您将花费更多的时间来维护它。不要过度设计。
当然,message queue
有更复杂的特征,并且善于解耦。
(ps:你可以看问题:Why are message queues used insted of mulithreading?)