greenlet库是一个实现协程的库,是一个早期的实现协程的方式,它并不是python自带的库,所有在使用前需要下载这个库(pip install greenlet,当然使用国内源会下载的更快一点)
from greenlet import greenlet def fun1(): print(1) # 1.打印1 gr2.switch() # 2.跳转到fun2()函数 print(2) # 5.打印2 gr2.switch() # 6.跳转到fun2()函数 def fun2(): print(3) # 3.打印3 gr1.switch() # 4.跳转到fun1()函数 print(4) # 7.打印4 gr1 = greenlet(fun1) gr2 = greenlet(fun2) gr1.switch() # 先执行fun1()函数在python3.4的标准库中引入了asyncio来实现对异步io的支持,在python3.5中添加了async和await这两个关键字,分别用来替换asyncio.coroutine和yield from。
import asyncio async def func1(): print(1) await asyncio.sleep(2) print(2) async def func2(): print(3) await asyncio.sleep(2) print(4) tasks = [ asyncio.ensure_future(func1()), asyncio.ensure_future(func2()) ] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks))