消息队列VS线程池

时间:2010-08-05 15:33:44

标签: multithreading threadpool message-queue

消息队列和线程池之间有什么区别?

3 个答案:

答案 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?