gpt4 book ai didi

java - ExecutorService 空闲任务

转载 作者:行者123 更新时间:2023-12-01 11:16:39 25 4
gpt4 key购买 nike

我使用java.util.ExecutorService来处理任务,有时只有一个工作人员。不是,我想添加诸如空闲任务之类的东西,在没有发生任何事情并且用户选择了某些项目的情况下从数据库预加载数据和类似的东西。

我的第一个想法是在用户选择某些内容时将其添加为任务,因为当用户开始与选择进行交互时,需要数据并且必须以任何方式加载。

这种方法的问题在于,当用户选择另一个项目而不对第一个选择执行某些操作时,执行器中就会出现这项艰巨的任务,这只会让一切变得更慢。

有什么简单的想法可以让我开始做这样的事情吗?我真的不想构建一个巨大的管理类来处理它并对任务或类似的东西进行分类。

最佳答案

那么使用 PriorityBlockingQueue 怎么样?将任务保留在该队列中,给空闲任务低优先级,以便它们始终位于队列的末尾。实现池的可运行程序,以便它们只需从队列中获取最高优先级的任务并执行它。

为了确保执行的空闲任务将被更重要的任务取代,您可以将它们实现为以短 block 执行,并在每个 block 完成后放回到队列中。如果同时有更重要的任务被放入队列中,那么接下来会取出它,如果没有,则会再次从队列中取出空闲任务。

关于java - ExecutorService 空闲任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31746236/

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