【Kotlin学习】协程的基本概念(2)

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

协程的上下文和调度

协程的调度

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

在这里插入图片描述

在这里插入图片描述

Unconfined是在当前默认的协程中运行,但是在遇到第一个暂停点之后回复的线程是不确定的,所以对于Unconfined,无法保证全都在当前线程中调用

父子协程

通过一个协程的coroutineContext(当前协程的上下文)来启动另一个协程,新协程的job就会称为该协程的孩子

在这里插入图片描述
在这里插入图片描述

由于父协程的取消,会导致子协程也会被取消,而job2是job的孩子,job1不是,所以job2只输出了一句话

多个CoroutineContext进行+操作

协程支持多个CoroutineContext进行+操作,使得一个协程具有多个CoroutineContext的特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值