I have an iteration vals: Iterable[T]
and a long-running function without any relevant side effects: f: (T => Unit)
. Right now this is applied to vals
in the obvious way:
vals.foreach(f)
I would like the calls to f
to be done concurrently (within reasonable limits). Is there an obvious function somewhere in the Scala base library? Something like:
Concurrent.foreach(8 /* Number of threads. */)(vals, f)
While f
is reasonably long running, it is short enough that I don't want the overhead of invoking a thread for each call, so I am looking for something based on a thread pool.