不能在同一个方法内并发运行两个for循环,因为在方法体内是顺序执行的,前一个for不跳出,后一个for是不能执行的。
如果想要并发执行,需要使用Thread类,详情可以去看关于java线程的知识。
一个函数里不可能让两个for循环同时开始运行,在一个函数里面它始终是从上往下依次执行的,要同时运行两个for循环你只有开线程了
我的理解是,题主想让一个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
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);
}
}
呃,恕我愚昧,同一个cpu在同一时刻能执行2个指令,很明显不可能。同理,同一个函数里不可能做到2个for循环一起的,无论是并发还是并行。如果真有,记得回我一声,我也学习下。
不明白这样有什么意义呢