下面的代码打印出“内部.”两次。
import java.util.concurrent.ForkJoinPool;
public class Test {
public static void main(String[] args) {
ForkJoinPool forkJoinPool = new ForkJoinPool(3);
forkJoinPool.submit(() -> {
System.out.println("Inside...");
}).invoke();
}
}为什么会这样呢?
发布于 2021-09-14 07:36:09
您不应该同时调用submit和invoke。ForkJoinPool#submit将任务发布到池中,并且在线程准备就绪后也会执行它。
该方法还返回ForkJoinTask,在其上调用invoke,再次执行任务并等待其结果。
https://stackoverflow.com/questions/69173437
复制相似问题