multithreading - 为什么使用消息队列而不是多线程?

标签 multithreading message-queue

我有以下查询,我需要有人帮助我。我是消息队列的新手,最近开始研究 Kestrel 消息队列。 据我了解,线程和消息队列都用于应用程序中的并发,那么使用消息队列比多线程有什么优势?

请帮忙 谢谢。

最佳答案

消息队列允许您在程序之外进行通信。

这允许您将生产者与消费者分离。您可以将要完成的工作分散到多个进程和机器上,并且您可以管理/升级/移动这些彼此独立的程序。

消息队列通常还由一个或多个代理组成,这些代理负责分发您的消息并确保消息不会丢失,以防万一发生不好的事情(例如,您的程序崩溃,您升级其中一个程序等)

消息队列也可能在程序内部使用,在这种情况下,它通常只是一种将数据从生产者线程交换/排队到消费者线程以进行异步处理的工具。

关于multithreading - 为什么使用消息队列而不是多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828064/

相关文章:

erlang - 使用它进行 JSON 数据传输

java - Amazon SQS 消息属性

android - 在 Android/多线程上实现 JmDNS

java - 等待/通知的奇怪 Java 行为

python线程池不等待进程结束

ruby-on-rails - IAP 后端最佳实践

architecture - 基于请求与基于事件的架构

python - 限制传入消息以避免重复的最佳方法

java - 鉴于已检查的错误不会在我的程序中抛出,这个未经检查的包装器是否可以接受

java代码执行在没有断点和正常运行的调试中产生不同的结果。 ExecutorService 坏了吗?