gpt4 book ai didi

java - 在java中使用多线程并行化for循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:46:35 28 4
gpt4 key购买 nike

我在 java 中有一个 for 循环,它具有以下结构,我需要将其并行化为固定数量的线程。假设该数字在 numThreads 中。 for 循环如下所示。请注意,只有外部循环需要并行化。我想我需要使用 Executor 但我无法弄清楚如何将工作负载拆分为不同的线程,如果这会改变我在循环内的索引,如 isInsulator[x][y] .基本上我想要不同的线程拆分 X 的值并为分配给它们的那些 x 值运行 for 循环。那有意义吗?任何人都可以帮助我实现这一目标,或者请将我推向正确的方向吗?

最佳答案

你可以声明一个固定的线程池(它会初始化并只使用指定数量的线程):

Executor executor = Executors.newFixedThreadPool(numThreads);

您必须向线程池提交 X 个任务:

for (int i = 0; i < X; i++) {
final int x = i;
executor.execute(() -> submitTask(x));
}

在 submitTask 方法中你可以定义你的逻辑:

private void submitTask(final int x) {
for (int y = 0; y < Y; y++) {
//do stuff
}
}

关于java - 在java中使用多线程并行化for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52641896/

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