gpt4 book ai didi

Java:带有 Callables 的 ExecutorService:在循环中重用同一个池?需要关机吗?

转载 作者:行者123 更新时间:2023-12-02 00:28:40 27 4
gpt4 key购买 nike

我有一个循环{Loop-1},我在其中启动线程。包含{Loop-1} 的类实现了Daemon 和Runnable。在 {Loop-1} 中,启动的线程调用我使用的类 Cooperative.java 的方法 coordinate()执行者服务。

当创建Cooperative.java的对象时(这在{Loop-1}之前发生一次),我实例化一个ExecutorServicepool = Executors.newFixedThreadPool(2);

在坐标()中,我创建了两个实现 Callable 的类的对象,然后启动它们并将结果存储在未来结果列表中。callableResults = pool.invokeAll(threads);

之后,我尝试使用 result = future.get();

循环获取结果

然后,我返回到{Loop-1},整个过程再次开始(调用cooperative()invokeAll()future.get()

现在我有以下问题:1. 在coordinate()中得到结果后,是否需要关闭ExecutorService池?2. 每次我的 {Loop-1} 调用 cooperative() 时都需要重新创建池吗?

谢谢各位的解答! :-)

最佳答案

不,你没有。固定线程池中的线程可以一直使用,直到您对其调用 shutdown 为止。因此,您只需重新提交要执行的新任务并获取其结果,就像您在第一轮中所做的那样。

关于Java:带有 Callables 的 ExecutorService:在循环中重用同一个池?需要关机吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9566802/

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