It reuses the ForkJoin common pool and doesn't have a way for you to specify the thread pool, factory, or anything from what I can see. This is where implicit execution contexts in Scala really help as much as people hate implicits. Of course you have to use the tasksupport setter in Scala for parallel collections instead , but at least it's configurable.