协程的上下文和调度
协程的调度
协程拥有多种调度器,使用不用的协程调度器,协程会运行在不同的线程中


Unconfined是在当前默认的协程中运行,但是在遇到第一个暂停点之后回复的线程是不确定的,所以对于Unconfined,无法保证全都在当前线程中调用
父子协程
通过一个协程的coroutineContext(当前协程的上下文)来启动另一个协程,新协程的job就会称为该协程的孩子


由于父协程的取消,会导致子协程也会被取消,而job2是job的孩子,job1不是,所以job2只输出了一句话
多个CoroutineContext进行+操作
协程支持多个CoroutineContext进行+操作,使得一个协程具有多个CoroutineContext的特性

本文详细介绍了Kotlin协程的调度机制,包括Unconfined、父子协程、CoroutineContext的组合及协程作用域CoroutineScope。讲解了如何通过+操作合并CoroutineContext,并展示了GlobalScope的使用注意事项。此外,还阐述了Channel在协程间通信的重要角色,如生产者消费者模型,以及channel的关闭和缓冲。最后提到了actor和Select表达式在并发处理中的应用。
最低0.47元/天 解锁文章
8840

被折叠的 条评论
为什么被折叠?



