我注意到自从 Scala 2.9.* 以来,该setMaximumPoolSize
方法似乎已经消失了ForkJoinPool
,它看起来就像我想要的那样。大多数关于限制 Scala 并行集合中的并行性的讨论都围绕setParallelism
同一个类的方法(它也已经消失,但对我来说不是什么大问题),但在我的情况下,并行任务可以执行外部 IO,并且经常会阻塞在上面。然后ForkJoinPool
在这种情况下启动更多线程并有效地针对有问题的共享 IO 资源执行 DOS,这是不可取的。
有没有办法以某种方式限制池中的线程数?我并不真正关心 spawn-when-blocked-on-IO 行为,但我想要某种程度的并行性,因为我的 IO 任务是独立的并且不会相互干扰。