gpt4 book ai didi

java - 调度问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:34 25 4
gpt4 key购买 nike

在我的项目中,我有两个 JMS 队列,一个是数据队列,一个是业务队列。多个线程从这两个队列中读取数据并将其提交给多个引擎的网格。网格有多个引擎可以并行执行同步和异步方式的任务。

问题陈述:来自业务队列的事件应该优先于网格上的数据队列。

这个问题可以通过多种方式解决,但资源利用率应该是最优的,并且如果可能的话,数据队列中的事件不应发生饥饿。

一个简单的解决方案是:维护一个计数器,如果业务事件到来则递增,如果业务事件在网格上处理则递减。如果数据事件到来需要等到计数器达到零(或网格上的最大引擎数)。可以采取一些措施来阻止饥饿。

任何更好的解决方案,它可以优化地利用网格引擎,而且 java 线程的利用应该是最优的?

最佳答案

您是否在读者线程中尝试过:


while(reading from any queue)
{
while (there are messages in business queue)
{
process a business queue message.
}

process one data queue message.
}

关于java - 调度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015658/

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