宁夏做网站好的公司,上海网站设计建设公司,个人网站开发计划书,滁州森沃纸质包装有限公司什么是协程#xff1f;
协程不是计算机系统提供#xff0c;程序员人为创造。
协程也可以被称为微线程#xff0c;是一种用户态内的上下文切换技术。简而言之#xff0c;其实就是通过一个线程实现代码块相互切换执行。
实现协程有那么几种方法#xff1a;
greenlet
协程不是计算机系统提供程序员人为创造。
协程也可以被称为微线程是一种用户态内的上下文切换技术。简而言之其实就是通过一个线程实现代码块相互切换执行。
实现协程有那么几种方法
greenlet早期模块 yield关键字 asyncio装饰器python3.4之后 asyncawait关键字python3.5之后 协程的意义
在一个线程中如果遇到IO等待时间线程不会傻等利用空闲的时候再去干点其他事。
下面是不包含协程的代码示例也被称为同步因为发送了下载请求马上返回图片结果。 加上协程之后的一个通信形式是再发送一个请求的时候同步发出另一个请求。这样比较快。
而且也被称为异步因为发送了下载请求没有马上返回图片结果。 异步编程
事件循环 快速上手
协程函数定义函数的时候async def 函数
协程对象执行协程函数()得到的协程对象
async def func():pass
result func()
注意执行协程函数创建协程对象函数内部代码不会执行
如果想要运行协程函数内部代码必须要将协程对象交给事件循环来处理。
import asyncioasync def func():print(叭叭叭)result func()# python3.7之前的版本写法
loop asyncio.get_event_loop()
loop.run_until_complete(result)# python3.7之后的版本写法
asyncio.run(result)
await
await可等待的对象协程对象、future、task对象 - IO等待
import asyncioasync def func():print(来玩呀)response await.asyncio.sleep(2)print(结束,response)
asyncio.run(func()) task future