当前位置:嗨网首页>书籍在线阅读

01-协程简介

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

12.1 协程简介

在多并发模型中,进程包含线程,线程包含协程。可以说,只要内存足够,一个线程中可以包含任意多个协程,但某一时刻却只能有一个协程在运行,多个协程分享该线程资源。近年来,一些新的语言开始提供对基于协程的并发模型的支持,其中比较典型的编程语言有Lua、Python、Perl和Kotlin等。

协程(coroutine),又称微线程,是一种无优先级的子程序调度组件,由协程构建器(coroutine builder)启动。协程本质上是一种用户态的轻量级线程,协程的调用方式与子线程的调用方式一样,但是协程的使用更加方便灵活,在使用范围上,协程不像子线程那样广泛。

协程并非Kotlin所独有,它的概念由来已久,最早由Melvin Conway在1958年提出并给出了以下的定义。

  • 数据在后续调用中始终保持局部状态。
  • 当控制流程离开时,协程的执行被挂起,此后当控制流程再次进入这个协程时,协程从上次挂起的地方继续执行。