以前のリビジョンの文書です
// 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
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 { delay(1000) n } } ↓ Sum: 1784293664