コルーチン レッスン5
構造化された並行処理
スコープとジョブを使った構造化並行処理とキャンセルの仕組みを学びます。
構造化並行処理とは
構造化並行処理では、コルーチンは常に特定のスコープに属します。 親スコープがキャンセルされると子コルーチンも自動的にキャンセルされます。
- coroutineScopeで新しいスコープを作成できる
- 親のキャンセルは子に伝播する
- 子の失敗は親に伝播する(SupervisorJobで防げる)
- スコープが完了すると全ての子も完了している
coroutineScopeの使い方
coroutineScopeで子コルーチンを全て待機します。
Kotlinエディタ
コルーチンのキャンセル
cancel()でコルーチンをキャンセルできます。
Kotlinエディタ
SupervisorJob
SupervisorJobを使うと子の失敗が他の子に伝播しません。
Kotlinエディタ