实例讲解python中的协程
作者:laozhang 发布时间:2022-08-10 20:10:38
标签:python,协程
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。
0
投稿
猜你喜欢
- C++里函数可以设置缺省参数,Java不可以,只能通过重载的方式来实现,python里也可以设置默认参数,最大的好处就是降低函数难度,函数的
- reflect.StructField 和 reflect.Method如果变量是一个结构体,我们还可以通过结构体域类型对象 reflect
- 模块的相关概念 1. 什么是模块模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块模块的英文名叫:
- MYSQL在一个字段值前面加字符窜,如下:member 表名card 字段名update member SET card = '00
- 看代码,tensor转numpy:a = torch.ones(2,2)b = a.numpy()c=np.array(a) #也可以转nu
- 简单介绍Mac下使用HomeBrew安装Python 3.*版本并设置为默认值1、首先查看Mac自带的python,可以看到是2.7.10的
- 最近央视新闻记者王冰冰以清除可爱和专业的新闻业务水平深受众多网友喜爱,b站也有很多up主剪辑了关于王冰冰的视频。我们都是知道b站是一个弹幕网
- 1,System.ComponentModelSystem.ComponentModel 命名空间提供用于实现组件和控件的运行时和设计时行为
- 编程一直是在课余时间,放假时间自学,到现在为止也有半年了。这是我自己用python实现的连连看,也是第一个完成的游戏,虽然极其简陋。思路呢,
- Python encode()方法encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个
- 在操作sqlserver时候用到了substring函数 SUBSTRING ( expression, start, length ) 参
- 在写桌面软件时,通常会使用到托盘上的泡泡提示功能,让我们来看看使用python如何实现这个小功能。一、Linux系统在Linux上,实现一个
- 因客户需求,要把数据库里的索引编号做成五位长度的,且能自动累加编号,我只会在SQL中使用Identity自动编号:Create Table
- 一、参照完整性参照完整性指的就是多表之间的设计,主要使用外键约束。多表设计: 一对多、多对多、一对一设计1.一对多关联主要语句:constr
- 在windows下安装Mysql系统日志出现max_open_files: 2048 max_connections: 510 table_
- Gogland 是 JetBrains 公司推出的Go语言集成开发环境。Gogland 同样基于 IntelliJ 平台开发,支持 JetB
- 产生原因:先说一下Git和SVN的区别吧,有助于更好的理解这个问题。SVN从服务器上update文件时,如果文件有冲突,SVN会自动帮你me
- 把程序重新写了一遍,日期下拉选择器,可自定义日期范围。使用了一个技巧获取指定月份的天数。演示页面:DateSelector.htm 程序代码
- 在工作中遇到把DataGrid中绑定的后台数据库数据展示给用户时把负数变为0的小问题,现在记录下来。例子中数据表示这个样子的:-------
- 本文实例讲述了python中列表元素连接方法join用法。分享给大家供大家参考。具体分析如下:创建列表:>>> music