8

Laut dem Papier auf parallelen Sammlungen und die Suche im Internet, sind parallel Sammlungen sollen mit Blick auf arbeiten, aber ich bin auf der Differenz zwischenScala-Parallelansichten mit X.par.view vs X.view.par erstellen?

coll.par.view.someChainedIterations 

und

coll.view.par.someChainedIterations 

Es ist nicht klar zu sein scheint wie coll.view.par verliert die viewness der Sammlung:

scala> val coll = 1 to 3 
coll: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3) 

scala> coll.view.par 
res2: scala.collection.parallel.ParSeq[Int] = ParArray(1, 2, 3) 

scala> coll.par.view 
res3: java.lang.Object with scala.collection.parallel.ParSeqView[Int,scala.collection.parallel.immutable.ParSeq[Int],scala.collection.immutable.Seq[Int]] = $anon$1(1, 2, 3) 

aber ich weiß nicht, warum. Ist es ein Feature oder ein Fehler?

Antwort

4

Dies ist wahrscheinlich ein Versehen und sollte behoben werden.

Die par auf aufeinanderfolgende Ansichten durch den Aufruf der par auf der underlying Sammlung umgesetzt werden könnten, die in einer Kette von rekursiven par Anrufe führen würde, bis die underlying eine strenge Sammlung ist, dass die Ansicht ursprünglich erhalten wurde. Wenn diese Sammlung effizient in ihre entsprechende parallele Sammlung umgewandelt werden kann, kann die neu erhaltene parallele Ansicht effizient konstruiert werden (siehe here).

Verwandte Themen