我試圖使它可選運行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