gpt4 book ai didi

Java,系统架构,正确实现

转载 作者:行者123 更新时间:2023-12-02 00:16:42 24 4
gpt4 key购买 nike

我不是java专家,我的问题有点抽象,我需要关于如何最好地实现我建议的架构和要求的建议。

我将描述我的要求:

我有一个管理器对象,它接收要处理的任务(保存一个任务队列),管理器应该在专用线程之间分配任务。每个线程都知道只执行特定类型的任务。

我创建了一个主管理器类,其中包含特定类型线程的集合,当主管理器收到新任务时,它将把任务推送到知道如何处理该任务的线程类对象的队列中(每个线程都有自己的任务队列)。

线程在处理完前一个任务后需要从队列中池化一个任务,但如果队列为空,则该线程不应该使用资源,并且需要在新任务到达时被唤醒。

我的想法(可能不太好)是使用扩展计时器对象的线程并执行检查其队列的定时任务,但这不符合我在新任务到达之前释放资源的要求。

任何有关处理这些系统要求的最佳方法的建议将不胜感激(我的问题不是作业,而是我开发任务的一部分)。

编辑

(对@Alexander Torsdling的回答)我当前使用阻塞队列作为任务队列,我的问题不是并发问题而是架构问题,我想在队列为空时释放资源并且我想如果有新任务到达,可能会通过事件唤醒,如果我已经完成了一个任务的处理并且我还有更多任务,我将继续处理下一个任务;

最佳答案

看看BlockingQueue 。为了避免创建太多线程,您可能需要考虑使用 Executor ,它可以为您管理线程池。

关于Java,系统架构,正确实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778260/

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