Java Fork / Join Pool:假设fork join pool中的线程数完全依赖于底层的CPU数量,这是正确的吗?

时间:2018-03-16 03:25:25

标签: java multithreading fork-join

开发人员可以告诉fork / join pool创建一定数量的线程吗? 如果是,那么是否可以保证池中创建了多少个线程?

2 个答案:

答案 0 :(得分:0)

来源:https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html

  

使用给定的目标并行度级构建ForkJoinPool;默认情况下,等于可用处理器的数量。池尝试通过动态添加,挂起或恢复内部工作线程来维护足够的活动(或可用)线程,即使某些任务停止等待加入其他任务

答案 1 :(得分:0)

基本上,fork连接池是ThreadPool,它适用于工作窃取算法。有api来指定并行性(最大活动线程数 - (0-2 ^ 15-1))

指定并行性并不意味着池将在启动时创建那么多线程,但是如果需要将工作提交到池中,它将创建线程。