美文网首页Kotlin
kotlin协程的Job和SupervisorJob的一些笔记

kotlin协程的Job和SupervisorJob的一些笔记

作者: 带带大湿兄 | 来源:发表于2020-08-12 18:41 被阅读0次
  1. Job是协程的默认context
  2. 子协程不会继承父协程的context,会使用默认值
  3. 协程的上下文为SupervisorJob时,该协程中的异常不会向外传播,因此不会影响其父亲/兄弟协程,也不会被其兄弟协程抛出的异常影响
  4. 正确使用SupervisorJob的方法
// job1、job2、job3和job4的上下文都是SupervisorJob

val scope = CoroutineScope(SupervisorJob()) 
job1 = scope.launch {...}
job2 = scope.launch {...}

supervisorScope { 
    job3 = launch {...}
    job4 = launch {...}
}
  1. launch(SupervisorJob()){...}只会使该协程的上下文变为SupervisorJob,其大括号内部的上下文依然是Job

相关文章

网友评论

    本文标题:kotlin协程的Job和SupervisorJob的一些笔记

    本文链接:https://www.haomeiwen.com/subject/mueidktx.html