Python协程&asyncio&异步编程
Python协程&asyncio&异步编程 1.协程 协程是微线程,是一种用户态上下文切换技术,通过一个线程实现代码块相互切换执行 实现协程有这么几种方法: greenlet,早期的模块 yield 关键字 asyncio python3.4引入的 async、await关键字 python3.5 主流[推荐] 1.1 greenlet实现协程 pip install greenlet # -*- coding: utf-8 -*- from greenlet import greenlet def func1(): print(1) # 第1步:输出1 gr2.switch() # 第2步:跳到func2函数 print(2) # 第5步:输出2 gr2.switch() # 第6步:跳到func2函数 def func2(): print(3) # 第3步:输出3 gr1.switch() # 第4步:跳到func1函数 print(4) # 第7步:输出4 gr1 = greenlet(func1) gr2 = greenlet(func2) gr1.switch() # 第1步:去执行func1函数 1.2 yield关键字 # -*- coding: utf-8 -*- def func1(): yield 1 yield from func2() yield 2 def