どうも。どっことです。今回はKotlin
Coroutineの並行実行する処理の実装方法について解説していきます。
Kotlin Coroutineを並列に実行する
非同期処理をとっても素敵に実装できるKotlin
Coroutineですが、いくつかの処理を同時に実行したいようなケースにも対応することができます。APIによる通信やデータベースデータの永続化といった、時間がかかる処理をできるだけ短縮していきましょう。
実装方法
実装だけなら以下の2パターンで実現することができます。
async/awaitによる実装
ひとつはasync/awaitを使って実装する方法です。
viewModelScope.launch {
val apiList = listOf(
// async でコルーチンを生成 その中でAPIを実行する
async { api1() },
async { api2() },
async { api3() },
)
// すべてのコルーチンを実行。全部終わるまで待つ。
apiList.awaitAll()
}
launch/joinAllによる実装
もうひとつはlaunch/joinAllを使って実装する方法です。
viewModelScope.launch {
// lanuch でコルーチンを作成し、その中でAPIを実行する。
val apiJobsList = listOf(
launch { api1() },
launch { api2() },
launch { api3() },
)
// すべてのコルーチンを実行。全部終わるまで待つ。
apiJobsList.joinAll()
}
まとめ
今回は、Kotlin
Coroutineによる処理を並列実行する実装について解説しました。ユーザの待ち時間を減らせるように活用していただけると幸いです。
参考