Мне нужно сделать параллельную плоскую карту. Допустим, у меня есть этот код:
val coll: List<Set<Int>> = ... coll.flatMap{set -> setOf(set, set + 1)}
Мне нужно что-то вроде этого:
coll.pFlatMap{set -> setOf(set, set + 1)} // parallel execution
Kotlin не предоставляет никаких потоков из коробки. Но вы можете использовать kotlinx.coroutines, чтобы сделать что-то вроде этого:
val coll: List<Set<Int>> = ... val result = coll .map {set -> // Run each task in own coroutine, // you can limit concurrency using custom coroutine dispatcher async { doSomethingWithSet(set) } } .flatMap { deferred -> // Await results and use flatMap deferred.await() // You can handle errors here }