【发布时间】:2014-11-03 17:49:19
【问题描述】:
场景 - 队列有消息对象。轮询队列并将消息传递给消息处理程序。消息检索(轮询)应在客户端登录事件(一个或多个)时停止。我可以使用等待/通知机制来实现这一点,但 Joshua Bloch 的建议说,随着并发实用程序的出现,几乎没有任何理由使用繁琐的等待/通知机制。我无法选择适合我的目的的同步器(信号量、循环障碍、倒计时)。任何建议表示赞赏。
【问题讨论】:
-
这确实需要代码。什么样的队列?例如,您可能指的是JMS message queue,,但我认为您不是。
-
@markspace 消息从 JMS 队列中提取,然后放入 LinkedList(用于异步处理)。目前,我提到的队列是 LinkedList。
-
JMS 专为异步消费而设计。为什么不让消息在 JMS 队列中呢?
-
@AlexisHassler JMS 队列上有很多监听器。每条消息都会经过每一个听众。每个侦听器处理每条消息所花费的时间可能会大大增加。引入另一个队列的目的是加快我正在处理的侦听器的响应时间。
标签: java multithreading concurrency synchronous java.util.concurrent