前言
上一篇文章介绍了协程概念的具像化,算是对协程的概念进一步进行加深,本篇文章来看一下协程结构化的概念。
结构化 是协程中一个非常重要且非常实用的一个特性,它可以帮助我们更好的管理协程的生命周期。
如果说 挂起函数 解决了并发任务的写法问题,使得我们可以像写同步代码一样来实现异步逻辑,消除了 回调地狱,降低了 并发任务的复杂度。
那么协程的结构化 则帮我们解决了 并发任务的管理 的问题。
协程的父子关系
之所以说协程是结构化的,是因为协程是存在父子关系的。
一个协程可以有多个子协程,子协程又可以有多个子协程,这样就形成一个树形结构。
在上一篇协程概念具像化的文章中,我们分析了协程创建的过程,并提到了通过 coroutineScope
中的 launch
函数创建出来的协程的返回值类型是 Job
。这个 Job
中的大部分属性和方法都跟线程中的 Thread
类似,比如 start
,join
,cancel
等。
但是,