我试图使它可选运行map操作顺序或并行,例如使用下面的代码调用上的并行集合图: val runParallel = true
val theList = List(1,2,3,4,5)
(if(runParallel) theList.par else theList) map println //Doesn't run in parallel
什么我注意到的是“地图”操作并不像我预期的那
The easiest way to convert a Java Collection to a Scala equivalent is using JavaConversions, since Scala 2.8.创建Scala的并行集合。这些隐式defs返回包含Java Collection的包装器。 的Scala 2.9引入平行集合,其中在收集操作可并行执行,其结果后收集。这是很容易实现的
假设我有一个〜10K元素的数组,我需要处理数组中的所有元素。我想以这种方式处理它们,只有K元素被并行处理。我使用Scala 2.9。我试过平行收集(见下文),但我看到更多比K元素并行处理。
import collection.parallel.ForkJoinTasks.defaultForkJoinPool._
val old = getParallelism
setParallelis
是否是一个好主意?假设我有一个比较大的(几百万项左右的)字符串列表。运行是这样的: val updatedList = myList.par.map(someAction).toList
还是会运行...par.map(,这样之前的列表是组一个更好的主意: val numberOfCores = Runtime.getRuntime.availableProcessors
val updat