Ich habe eine Iteration vals: Iterable[T]
und eine langlaufende Funktion ohne relevante Nebenwirkungen: f: (T => Unit)
. Zurzeit gilt dies für vals
auf die offensichtliche Weise:
vals.foreach(f)
Ich möchte, dass die Anrufe an f
gleichzeitig durchgeführt werden (innerhalb angemessener Grenzen). Gibt es eine offensichtliche Funktion irgendwo in der Scala-Basisbibliothek? Etwas wie:
Concurrent.foreach(8 /* Number of threads. */)(vals, f)
Während f
relativ lange läuft, ist es kurz genug, dass ich den Overhead des Aufrufs eines Threads für jeden Aufruf nicht möchte, also suche ich nach etwas, das auf einem Threadpool basiert.