forEachParallel

inline suspend fun <T> Iterable<T>.forEachParallel(crossinline action: suspend (T) -> Unit)(source)
inline suspend fun <K, V> Map<K, V>.forEachParallel(crossinline action: suspend (Map.Entry<K, V>) -> Unit)(source)
inline suspend fun <T> Array<T>.forEachParallel(crossinline action: suspend (T) -> Unit)(source)

forEach 并行版,会为每个条目启动一个协程来执行 action

用法与 forEach 近似,但 lambda 内部不允许非局部返回,因为 lambda 要用来启动协程。


inline suspend fun <T> Iterable<T>.forEachParallel(limit: Int, crossinline action: suspend (T) -> Unit)(source)
inline suspend fun <K, V> Map<K, V>.forEachParallel(limit: Int, crossinline action: suspend (Map.Entry<K, V>) -> Unit)(source)
inline suspend fun <T> Array<T>.forEachParallel(limit: Int, crossinline action: suspend (T) -> Unit)(source)

forEach 并行版,会为每个条目启动一个协程来执行 action,同时限制并发数为 limit

用法与 forEach 近似,但 lambda 内部不允许非局部返回,因为 lambda 要用来启动协程。