【发布时间】:2011-03-25 21:18:45
【问题描述】:
消息队列和线程池有什么区别?
【问题讨论】:
-
@S.Lott:“Otter”和“Peace”会更像它。水獭和马毕竟都是四足动物……
-
@Jerry Coffin:Queue 和 Pool 都是集合。
标签: multithreading threadpool message-queue
消息队列和线程池有什么区别?
【问题讨论】:
标签: multithreading threadpool message-queue
Message Queue 用于(异步)进程间通信,而Thread Pool 用于在一组线程上运行多个任务。我想不出一种合理的方法来比较它们……它们在很多方面都存在根本差异。
【讨论】:
真正的问题是两者之间是否有任何相似之处。消息队列是一种数据结构,用于保存从消息发送到接收者检索并对其进行操作的时间。
线程池是执行某种处理的线程池。线程池通常会附加某种线程安全队列,以允许您将要完成的作业排队。这通常被称为“任务队列”而不是消息队列,尽管它通常包含一些描述需要完成的任务的消息。
【讨论】:
message queue常用于分布式系统,thread pool常用于单机。 btw thread pool 在内部使用阻塞队列。如果您使用message queue,您将花费更多时间来维护它。不要过度设计。
当然,message queue 有更复杂的特性,并且擅长解耦。
(ps:你可以看问题:Why are message queues used insted of mulithreading?)
【讨论】: