前言
近段时间在网上看到许多关于 Kotlin 协程 的文章,协程的概念并不陌生,任何事务的作用大多是对于所依赖的环境相应而生的,协程对于kotlin这门语言也不例外,但是很少看到真正说的清楚讲的实在的,今天我们就来深入了解一下什么是协程
协程的定义
Android 官方对协程的定义:
● 协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码;协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念
协程是轻量级线程(官方表述):
● 可以换个说法,协程就是方法调用封装成类线程的 API ;方法调用当然比线程切换轻量;而封装成类线程的 API 后,它形似线程(可手动启动、有各种运行状态、能够协作工作、能够并发执行);因此从这个角度说,它是轻量级线程没错
广义上的协程定义:
● 用于在程序中处理并发任务的一种方案
● 比线程更加轻量级的存在,线程的上下文切换都需要内核(操作系统的核心)参与,而协程的上下文切换,完全由用户去控制,避免了大量的中断参与,减少了线程上下文切换与调度消耗的资源