美文网首页
什么是协程

什么是协程

作者: 陈光环_18 | 来源:发表于2021-04-18 09:06 被阅读0次

什么是协程

子程序, 或者称为函数, 在所有语言中都是层级调用, 比如A调用B, B在执行过程中又调用了C, C执行完毕返回, B执行完毕返回, 最后是A执行完毕. 所以子程序调用是通过栈实现的, 一个线程就是执行一个子程序。
子程序调用总是一个入口, 一次返回, 调用顺序是明确的。

协程看上去也是子程序, 但执行过程中, 在子程序内部可中断, 然后转而执行别的子程序, 在适当的时候再返回来接着执行。
注意, 在一个子程序中中断, 去执行其他子程序, 不是函数调用, 有点类似CPU的中断。
子程序可以看成协程的一种: 即没有内部中断的协程

和迭代器的区别:
迭代器每次调用 next() 执行的都是同一段代码逻辑, 但是协程可以执行不同的代码逻辑
在任何时刻, 只有一个协程在运行, 而 multiprocessing或threading 轮转使用操作系统调度的进程和线程, 是真正的并行

与多线程相比, 协程的优点在于:
避免了线程创建/切换带来的消耗
不需要多线程的锁机制

Go 一般把 goroutine 也称为协程

常规子程序
子程序执行完返回把控制权返还给调用这个子程序的上层,让上层继续往下执行,一层套一层,这就是层级调用。

特征:
执行完毕才返回
不可中断

协程
协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。

特征:
可以执行到一半先返回
可中断、挂起
再次执行可恢复状态

相关文章

  • Python并发编程系列之协程!

    1 引言 2 协程的意义 2.1 什么是协程 2.2 协程的作用 2.3 相关概念 3 定义协程 4 使用协程 4...

  • 总结:

    1.什么是协程?什么是协程协程,英文名是 Coroutine, 又称为微线程,是一种用户态的轻量级线程。协程不像线...

  • kotlin协程

    1:什么是协程,kotlin协程是什么。 2:kotlin开启协程的方式 launch async+await两...

  • 入门-协程(Coroutine)

    使用协程需要引入 1.什么是协程 官方文档(本质上,协程是轻量级的线程。) 个人理解:协程是一个线程框架,协程就是...

  • kotlin<第七篇>:协程基础

    一、什么是协程? 二、Android中协程用来解决什么问题? 三、需要添加地依赖 四、创建协程 五、协程的两部分 ...

  • Kotlin 协程

    一、关于协程 协程是Kotlin中最重要、最难学的一块! 为什么协程如此重要? 协程是 Kotlin 对比 Jav...

  • 协程

    1.协程 协程,又称微线程,纤程。英文名Coroutine。 1.1 协程是什么 协程是python个中另外一种实...

  • 协程介绍

    协程 协程,又称微线程,纤程。英文名Coroutine。 1.协程是什么? 协程是python个中另外一种实现多任...

  • Kotlin-Coroutine协程初探-扫盲

    什么是协程? 轻量级线程, 用户态的, 很像线程但又不是线程。 什么是kotlin中的协程? 协程是Kotlin官...

  • Kotlin 协程入门

    本文主要介绍协程长什么样子, 协程是什么东西, 协程挂起的实现原理以及整理了协程学习的资料. 协程 HelloWo...

网友评论

      本文标题:什么是协程

      本文链接:https://www.haomeiwen.com/subject/xepmlltx.html