はじめに
今回はCoroutineのJobという機能について調べたものを記事にします
箇条書きにしていてわかりにくいとは思いますが、使いながら理解を深めていこうと思っているのでご容赦ください
まとめ内容
Jobのできることを箇条書きにしてまとめたものです
・親子階層で配置することができ、親が取り消されると 子のロジックも取り消される
・SupervisorJobを使用してカスタマイズできる機能で、CancellationException以外の例外で子が失敗するとその親がキャンセルされる(結果 全ての子がキャンセルされる)
・基本的にはJob を実行しても値を出すことはできない
・Jobの状態は New,Active,Completing,Cancelling(キャンセル中),Cancelled (キャンセル済み),Completed の6つの状態が存在する
・Jobはアクティブな状態で作成され開始されます。
・またstartまたはjoinを呼び出すことによってアクティブにすることもできます。
job.start()
job.join()
・コルーチンが動いている間、またはCompletableJobが完了するまで、または失敗するか取り消されるまで、Jobはアクティブな状態
・Jobはいつでもキャンセル可能
job.cancel()
・アクティブなCoroutineの本体が完了するか、CompletableJob.complete が呼び出されると、Jobが完了状態になる
参考資料
おわりに
Coroutineの一つの機能でJobについてまとめました
Coroutineは便利な機能ですがやはり、使いこなすにはもう少し知識が必要だと思いました
別の機能についてもまた、記事にしていこうと思います!