gpt4 book ai didi

multithreading - 并行执行一个任务 'n' 次

转载 作者:行者123 更新时间:2023-12-03 13:05:00 25 4
gpt4 key购买 nike

我试图找出最简单的方法来调用任务'x'次并且在java中并行。该任务有一个字符串变量,其值对于每次调用都应该是唯一的,并且它返回一个字符串和 int 结果。

我一直在互联网上查找资源,现在我非常困惑。

最佳答案

为了并行执行任务,您的首选应该是 ExecutorService .
你会得到一个他们在文档中说的实例,即

ExecutorService service = Executors.newFixedThreadPool(poolSize);

如果你的任务必须返回一个值,你应该使用
Future<T> submit(Callable<T> task);

功能。让你的任务实现 Callable接口(interface),返回你需要的结果。将您的任务提交给服务,然后通过 Future 等待结果对象。粗略的草图:
public class MyTask implements Callable<StringInt> {
public MyTask(String inputParameter) { ... }
public StringInt call() { ... }
}

...

List<Future<StringInt>> results = new ArrayList<Future<StringInt>>();
ExecutorService service = Executors.newFixedThreadPool(16);
for (String inputParameter : inputParameters) {
// Create tasks and start parallel execution
results.add(service.submit(new MyTask(inputParameter)));
}

for (Future<StringInt> result : results) {
// Wait for tasks to end, and get result
StringInt resultValue = result.get();
...
}

关于multithreading - 并行执行一个任务 'n' 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19444157/

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