JAVA里怎么让2个FOR循环并发同时执行

2024-10-28 18:33:54
推荐回答(5个)
回答1:

不能在同一个方法内并发运行两个for循环,因为在方法体内是顺序执行的,前一个for不跳出,后一个for是不能执行的。
如果想要并发执行,需要使用Thread类,详情可以去看关于java线程的知识。

回答2:

一个函数里不可能让两个for循环同时开始运行,在一个函数里面它始终是从上往下依次执行的,要同时运行两个for循环你只有开线程了

回答3:

我的理解是,题主想让一个for语句的循环并发。
如果理解没错的话,这样创建线程应该可以帮到你。
package intellif.dzw;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;

public class TestThread {

private static final ForkJoinPool THREAD_POOL = new ForkJoinPool(Runtime.getRuntime().availableProcessors() + 4);// 线程池

public void testThread() {
List list=new LinkedList<>();
List> tasklist = new ArrayList<>();
for (String id : list) {
tasklist.add(THREAD_POOL.submit(() -> {// 创建线程
// 循环体
}));
}
tasklist.forEach(FunctionUtil::waitTillThreadFinish);// 等待所有线程结束
}
}

class FunctionUtil {
public static Object waitTillThreadFinish(Future thread) {
try {
return thread.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
return Optional.ofNullable(null);
}
}

回答4:

呃,恕我愚昧,同一个cpu在同一时刻能执行2个指令,很明显不可能。同理,同一个函数里不可能做到2个for循环一起的,无论是并发还是并行。如果真有,记得回我一声,我也学习下。

回答5:

不明白这样有什么意义呢