multithreading - 默认情况下,scala 的并行集合使用多少个线程?

标签 multithreading scala parallel-processing

当我打电话时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/

相关文章:

multithreading - 管理绿色线程

java - 类条件的等待方法不抛出 InterruptedException

multithreading - 在顺序执行的线程中使用ArrayBuffer?

java - 如何仅允许单个连接(url/端口)从 flink 应用程序读取和写入

python - 使用 Tkinter 正确完成线程化(有或没有队列)

java - 同步锁由最短等待线程获取

scala - 如何为 scala Iterable、spark 数据集制作编码器

c++ - 在 parallel_for 循环中为每个线程分配内存

r - R中的并行R执行问题

r - 如何检查 stopCluster (R) 是否有效