实例讲解python中的协程
作者:laozhang 时间:2022-08-10 20:10:38
python协程
线程和进程的操作是由程序触发系统接口,最后的执行者是系统;协程的操作则是程序员。
协程存在的意义:对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。协程,则只使用一个线程,在一个线程中规定某个代码块执行顺序。
协程的适用场景:当程序中存在大量不需要CPU的操作时(IO),适用于协程;
event loop是协程执行的控制点, 如果你希望执行协程, 就需要用到它们。
event loop提供了如下的特性:
注册、执行、取消延时调用(异步函数)
创建用于通信的client和server协议(工具)
创建和别的程序通信的子进程和协议(工具)
把函数调用送入线程池中
下面我们来举个例子:
协程实例
import asyncio
asyncdef cor1():
print("COR1 start")
await
cor2()
print("COR1 end")
asyncdef cor2():
print("COR2")
loop = asyncio.get_event_loop()
loop.run_until_complete(cor1())
loop.close()
最后三行是重点。
asyncio.get_event_loop() : asyncio启动默认的event loop
run_until_complete() : 这个函数是阻塞执行的,知道所有的异步函数执行完成,
close() : 关闭event loop。
标签:python,协程
0
投稿
猜你喜欢
django的登录注册系统的示例代码
2021-05-14 23:27:59
细化解析:SQL Server数据库的集群设计
2009-02-05 15:59:00
Python实现随机创建电话号码的方法示例
2021-08-31 06:38:03
python字符串str和字节数组相互转化方法
2022-02-14 08:31:48
Django Web开发中django-debug-toolbar的配置以及使用
2022-12-15 22:32:14
python 如何对Series中的每一个数据做运算
2023-11-19 23:33:07
Python time库的时间时钟处理
2022-12-18 23:04:23
python爬虫使用requests发送post请求示例详解
2022-02-26 16:50:22
Python 中迭代器与生成器实例详解
2023-02-27 14:47:41
用asp程序读取网站的alexa世界排名
2008-11-23 20:43:00
pybind11和numpy进行交互的方法
2021-08-18 23:24:14
python各种语言间时间的转化实现代码
2022-06-27 14:54:28
在python中实现对list求和及求积
2022-05-28 15:02:16
AJAX应用之草稿自动保存
2007-08-23 08:29:00
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2021-11-17 02:14:33
使用Python的PIL模块来进行图片对比
2022-04-28 19:18:36
利用Python如何实现一个小说网站雏形
2023-09-22 05:52:07
Python中的迭代器与生成器使用及说明
2022-01-01 08:14:27
python+opencv识别图片中的圆形
2022-02-10 00:04:23
教程javascript的function(函数)
2007-09-30 13:38:00