创建和使用并行集合

要从顺序集合创建并行集合,请调用 par 方法。要从并行集合创建顺序集合,请调用 seq 方法。此示例显示如何将常规 Vector 转换为 ParVector,然后再返回:

scala> val vect = (1 to 5).toVector
vect: Vector[Int] = Vector(1, 2, 3, 4, 5)

scala> val parVect = vect.par
parVect: scala.collection.parallel.immutable.ParVector[Int] = ParVector(1, 2, 3, 4, 5)

scala> parVect.seq
res0: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4, 5)

par 方法可以链接,允许你将顺序集合转换为并行集合并立即对其执行操作:

scala> vect.map(_ * 2)
res1: scala.collection.immutable.Vector[Int] = Vector(2, 4, 6, 8, 10)

scala> vect.par.map(_ * 2)
res2: scala.collection.parallel.immutable.ParVector[Int] = ParVector(2, 4, 6, 8, 10)

在这些示例中,工作实际上被分配到多个处理单元,然后在工作完成后重新加入 - 无需开发人员干预。