Java和Scala都引入了自己的全局ForkJoinPool,Java为java.util.concurrent.ForkJoinPool#commonPool
,Scala为scala.concurrent.ExecutionContext#global
。这两个似乎都打算用于相同的用例,特别是运行非阻塞并发任务(通常是隐式地)。现在,根据我的理解,如果您以错误的方式选择了互操作性依赖项,您将最终得到两个线程池做完全相同的事情,一个用于Java世界,另一个用于Scala世界。
因此,除非我缺少明显的东西,否则Scala是否有充分的理由不将Java commonPool用作其全局ExecutionContext?