消息队列 VS 线程池

发布于 2024-09-12 16:06:26 字数 21 浏览 7 评论 0原文

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

What the difference between message queues and thread pools?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

也只是曾经 2024-09-19 16:06:26

消息队列 用于(异步)进程间通信,而 线程池用于在一组线程上运行多个任务。我想不出一种合理的方法来比较它们……它们在很多方面都有根本上的不同。

Message Queue is used for (asynchronous) inter-process communication while a Thread Pool is used to run multiple tasks on a set of threads. I can't think of a reasonable way to compare them... they're fundamentally different from each-other in so many ways.

蘑菇王子 2024-09-19 16:06:26

真正的问题是两者之间是否有相似之处。消息队列是一种数据结构,用于保存消息(从发送消息到接收者检索消息并对其执行操作)。

线程池是执行某种处理的线程池。线程池通常会附加某种线程安全队列,以允许您对要完成的作业进行排队。这通常被称为“任务队列”而不是消息队列,尽管它通常包含某种描述需要完成的任务的消息。

The real question would be whether there's any similarity between the two. A message queue is a data structure for holding messages from the time they're sent until the time the receiver retrieves and acts on them.

A thread pool is a pool of threads that do some sort of processing. A thread pool will normally have some sort of thread-safe queue attached to allow you to queue up jobs to be done. This would more often be called something like a "task queue" than a message queue, though it will normally contain some sort of messages that describe the tasks that need to be done.

零時差 2024-09-19 16:06:26

消息队列通常用于分布式系统,线程池通常用于单机。顺便说一句,线程池内部使用阻塞队列。如果您使用消息队列,您将花费更多时间来维护它。不要过度设计。
当然,消息队列具有更复杂的功能,并且擅长解耦。
(ps:你可以看一下这个问题:为什么是消息队列使用多线程代替?

message queue usually used in distributed system, thread pool often used in individual machine. btw thread pool use blocking queue internally. if you use message queue, you will cost more time to maintain it. Don't over-designed.
Of course, message queue hava more complex features, and good at decoupling.
(ps: u can look at the question:Why are message queues used insted of mulithreading? )

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文