-
Job
是協(xié)程的默認context
- 子協(xié)程不會繼承父協(xié)程的
context
,會使用默認值 - 協(xié)程的上下文為
SupervisorJob
時个束,該協(xié)程中的異常不會向外傳播慕购,因此不會影響其父親/兄弟協(xié)程,也不會被其兄弟協(xié)程拋出的異常影響 - 正確使用SupervisorJob的方法
// job1茬底、job2沪悲、job3和job4的上下文都是SupervisorJob
val scope = CoroutineScope(SupervisorJob())
job1 = scope.launch {...}
job2 = scope.launch {...}
supervisorScope {
job3 = launch {...}
job4 = launch {...}
}
-
launch(SupervisorJob()){...}
只會使該協(xié)程的上下文變?yōu)?code>SupervisorJob影所,其大括號內(nèi)部的上下文依然是Job