关于协程的定义

来源:12-6 协程是什么

慕码人5330596

2018-11-11

以下是我的一些总结,希望同学们参考,共同进步。

协程也是一种IO复用的手段,相比于select + 回调,协程的优势是编码结构同步。
所谓IO复用(以实现高并发),其实本质上是将CPU操作和IO操作分离,在所有的python代码中都只进行CPU操作,将IO操作发送至内核完成,应用层不阻塞。从结果的角度来看这和多线程是类似的(因为python有gil锁,而线程也是遇到IO操作就切换,只不过线程切换是由操作系统完成的,而协程是由程序员完成的,这点bobby老师多次强调!)

为什么传统的函数不可以?
因为函数是基于栈进行调用的,只能运行完,然后退出。不能够暂停(无法由程序员调度任务),然后运行别的程序,再回来!

写回答

3回答

运行n次

2018-11-23

刚看了这节课  感觉有开悟的感觉  赶紧来捉个笔记   老师讲的太到位了


3
1
bobby
谢谢支持,
2018-11-24
共1条回复

bobby

2018-11-12

总结的很到位,赞

2
2
bobby
回复
笛梦少年
是的,原理大致是这个,但是不同的语言如何保存函数运行到哪一行实现方法有差异,比如c语言是吧这些信息保存在寄存器中的,但是函数本身的局部变量是保存在栈中的,只要栈不销毁,同时函数执行到哪一行能存下来理论上你可以随时回来继续执行,传统的语言比如c, java等不支持去控制而已,对于python来说生成器是一类特殊函数,支持这样做就使得函数暂停并随时回来可行了
2022-07-18
共2条回复

qq_Qian儭_03543846

2021-11-27

总结太到位了


下载视频          
0
0

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2128 学习 · 551 问题

查看课程