Concurrency of the function passed to `Stream.runForEach()`

Is the function passed to Stream.runForEach() guaranteed to run non-concurrently or do I need a semaphore/mutex?
Was this page helpful?