ich diesen CodeAusführen für das Verständnis parallel
def getParallelList[T](list : List[T]) : ParSeq[T] = {
val parList = list.par
parList.tasksupport = new ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(10))
parList
}
for {
a <- getList1
b <- getList2
c = b.calculateSomething
d <- getParallelList(getList3)
} { ... }
Ich möchte wissen, geschrieben, wenn dies eine gute (oder am besten) Art und Weise der for-Schleife zu machen parallel ausführen? Oder sollte ich Futures innerhalb der Schleife explizit programmieren?
Ich testete dies und es schien zu funktionieren ... aber ich bin mir nicht sicher, ob dies der beste Weg ist ... auch ich bin besorgt, was mit den Werten von a, b, c für verschiedene Threads von d passiert . Wenn ein Thread früher fertig ist? ändert es den Wert von a, b, c für andere?
Ich sollte die for-Schleife parallel über Scheiben von d ausführen, in jedem von ihnen mit dem gleichen a, b, c. Es gibt kein Problem damit, solange a, b, c unveränderlich sind (d. H. Ihr Wert sollte sich auf keinen Fall ändern). – JulienD