java - 如何理解 forkjoinpool 并行性?
问题描述
public class Demo {
public static void main(String[] args) {
ForkJoinPool forkJoinPool = new ForkJoinPool(17);
for (int i = 0; i < 100; i++) {
forkJoinPool.execute(() -> {
System.out.println(Thread.currentThread().getName());
});
}
try {
TimeUnit.DAYS.sleep(1L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
输出(控制台的一部分)
ForkJoinPool-1-worker-4
ForkJoinPool-1-worker-19
ForkJoinPool-1-worker-18
ForkJoinPool-1-worker-30
ForkJoinPool-1-worker-1
ForkJoinPool-1-worker-23
ForkJoinPool-1-worker-8
ForkJoinPool-1-worker-16
ForkJoinPool-1-worker-25
ForkJoinPool-1-worker-11
ForkJoinPool-1-worker-29
ForkJoinPool-1-worker-9
ForkJoinPool-1-worker-5
ForkJoinPool-1-worker-15
ForkJoinPool-1-worker-22
ForkJoinPool-1-worker-26
ForkJoinPool-1-worker-12
为什么超过 17 个线程?
在我的测试用例中,我想设置 17 个线程,我该怎么做?如何理解forkjoinpool的构造函数的并行性?
解决方案
推荐阅读
- php - 将 HTML5 中的地理位置传递给 PHP
- php - 如何在 PHP 中显示 MySQL 列的总数
- android - 如何在 repo 同步期间从 .repo/manifests 复制内容?
- graphql - 使用 GraphQL 编写的 API 时,由于没有更好的术语,子查询
- php - Pagination on wordpress template search does not work when i exclude category
- javascript - Angular HttpClient post 方法参数
- c# - 连续捕捉屏幕的一个区域
- python - 为什么我的代码只给出一个输出?
- java - Java 8/Eclipse 图像不可见
- java - 为什么我不能调用 Firebase