J'ai une itération vals: Iterable[T]
et une fonction longue sans effets secondaires pertinents : f: (T => Unit)
. En ce moment, cela est appliqué à vals
de manière évidente :
vals.foreach(f)
J'aimerais que les appels à f
soient effectués de manière concurrente (dans des limites raisonnables). Y a-t-il une fonction évidente quelque part dans la bibliothèque de base de Scala ? Quelque chose comme :
Concurrent.foreach(8 /* Nombre de threads. */)(vals, f)
Alors que f
est raisonnablement long à s'exécuter, il est assez court pour que je ne veuille pas supporter les frais généraux de l'invocation d'un thread pour chaque appel, donc je recherche quelque chose basé sur un pool de threads.