gpt4 book ai didi

java - Executor框架和JMS等消息队列的区别

转载 作者:行者123 更新时间:2023-12-02 00:38:44 25 4
gpt4 key购买 nike

消息队列主要用于在服务器上执行异步任务,我最近读到了 Executor 框架,它也做同样的事情,生成并管理线程来执行异步任务。谁能告诉我两者的区别?

最佳答案

主要区别在于,Executor 框架用于程序内任务排队和执行,而 JMS 用于在不同机器上的不同程序(通常)之间进行排队。

其他差异包括:

  • JMS 队列是(或可以)持久的,而 Executor 等仅位于内存中。

  • JMS 队列(我相信)可以在事务系统中使用,而 Executor 等则不能。 (在某种程度上,这是持久/非持久区别的结果。)

<小时/>

So that means if my app is not distributed I can use Executor framework.

也许...

For an instance I want to code a fb style notification system & publish subscribe will the use of executor framework be fitting for that? I assume the code will be on the same machine in a single db.

问题在于 Executor 框架的标准实现不会将任务队列放入数据库中。它们只是轻量级的内存数据结构。如果您的应用程序重新启动,它们将不会持续

现在,我想您可以编写 Executor/ExecutorService 类,将队列放入数据库中。但何苦呢?使用JMS或类似的会更简单......

关于java - Executor框架和JMS等消息队列的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26570058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com