gpt4 book ai didi

Java作业执行多线程与executorservice?

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

如何实现这样的功能?

我有一个动态队列,它在未知的时间被必须执行的可运行对象填满。 ExecutorService 应该只启动有限数量的线程,当达到最大线程大小时,它应该停止执行更多线程,直到一个线程结束,然后执行下一个任务。

到目前为止我遇到了这个:

ExecutorService executor = new ThreadPoolExecutor(20, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
databaseConnectionQueue);

ExecutorService 是在队列填满之前创建的,并且应该保持 Activity 状态直到队列被删除,而不是队列为空时,因为这种情况可能会发生。有人可以帮助我吗?

最佳答案

ThreadPoolExecutor 当它为空时不会关闭。来自 JavaDoc :

A pool that is no longer referenced in a program AND has no remaining threads will be shutdown automatically.

关于Java作业执行多线程与executorservice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014534/

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