如果我有这个:
val a = Array(...)
和我写
a.par.map(e => someFunc(e))
结果集合是否与非并行集合的顺序相同?
可以,但是函数本身的执行没有任何特定的顺序。
List(1,2,3).par foreach print // could print out 213
并行集合维护非并行集合的所有契约。
对于map
操作保持顺序的集合,如List
,并行的map
操作也会保持顺序。在map
不保持顺序的集合上,例如Set
,在并行版本中将不保持顺序。
对于无序集合,不能保证并行操作的结果具有与非并行操作相同的遍历顺序。