协程

作者: 抬头挺胸才算活着 | 来源:发表于2020-05-06 23:38 被阅读0次

    参考资料:
    [1]. 协程

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

    其中 yield 是python当中的语法。当协程执行到yield关键字时,会暂停在那一行,等到主线程调用send方法发送了数据,协程才会接到数据继续执行。但是,yield让协程暂停,和线程的阻塞是有本质区别的。协程的暂停完全由程序控制,线程的阻塞状态是由操作系统内核来进行切换。

    第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。

    协程的上下文都放在一起,可以理解为共用一个栈

    相关文章

      网友评论

          本文标题:协程

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