以前のリビジョンの文書です
Your first coroutine with Kotlin
Threadとは比べ物にならないほど軽い!
// thread version import kotlinx.coroutines.* import java.util.concurrent.atomic.AtomicLong import kotlin.concurrent.thread fun main() { val c = AtomicLong() for (i in 1..1_000_000L) // thread だと数秒まっても終了しないので諦めた thread(start = true) { c.addAndGet(i) } println(c.get()) } ↓ // coroutines version import kotlinx.coroutines.* import java.util.concurrent.atomic.AtomicLong import kotlin.concurrent.thread fun main() { runBlocking { val sum = deferred.sumBy { it.await() } println("Sum: $sum") } } val deferred = (1..1_000_000).map { n -> GlobalScope.async { n } } // Sum: 1784293664