gpt4 book ai didi

scala - 并行 map 操作?

转载 作者:行者123 更新时间:2023-12-03 03:38:12 29 4
gpt4 key购买 nike

Scala 是否提供了一种执行并行映射操作作为标准语言的一部分的方法?

例如,给定:

scala> val a = List((1,2), (3,4), (3,6))
a: List[(Int, Int)] = List((1,2), (3,4), (3,6))

我能做到:

scala> a.map(tup => tup._1 + tup._2)
res0: List[Int] = List(3, 7, 9)

但是,据我所知,这将按顺序将提供的函数映射到列表对象上。是否有一种内置方法可以将函数应用于单独线程(或等效线程)中的每个元素,然后将结果收集到结果列表中?

最佳答案

如果添加par,那么您将获得一个并行集合,并且对其进行的操作将被并行处理。要转换回普通集合,请调用 toList

所以你的代码看起来像:

a.par.map(tup => tup._1 + tup._2).toList

或者使用 .seq 获取顺序集合(与并行集合相反)。

a.par.map(tup => tup._1 + tup._2).seq

Also, check the documentation.

关于scala - 并行 map 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092855/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com