当我打电话时Array.tabulate(100)(i=>i).par map { _+ 1}
,使用了多少线程?
谢谢
最佳答案
假设没有并发运行的进程和/或线程,这意味着所有 CPU 和内核都处于空闲状态,这将是 CPU 上每个逻辑处理器 1 个线程。例如,如果您有一个具有 4 个内核的 Intel 处理器,但这些内核具有超线程,那么将有 8 个工作线程执行并行操作。
无论如何,这与 availableProcessors
返回的值相同JDK中的方法。
请注意 tabulate
您的示例中的调用不是并行的 - 它是按顺序执行的。
关于multithreading - 默认情况下,scala 的并行集合使用多少个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23163935/