实例讲解python中的协程


Posted in Python onOctober 08, 2018

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协程的相关知识,希望你能借助资料从而理解上述所说的内容。希望我在这片文章所讲述的内容能够对你有所帮助,让你学习python更加轻松。

Python 相关文章推荐
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
Python实现最大子序和的方法示例
Jul 05 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
Python使用pdb调试代码的技巧
May 03 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 Python
Python基础 括号()[]{}的详解
Nov 07 Python
详解python分布式进程
Oct 08 #Python
python中多个装饰器的执行顺序详解
Oct 08 #Python
使用EduBlock轻松学习Python编程
Oct 08 #Python
Django forms组件的使用教程
Oct 08 #Python
详解关于Django中ORM数据库迁移的配置
Oct 08 #Python
面向初学者的Python编辑器Mu
Oct 08 #Python
Django 实现购物车功能的示例代码
Oct 08 #Python
You might like
简单的cookie计数器实现源码
2013/06/07 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
jQuery Plupload上传插件的使用
2017/04/19 jQuery
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
优秀英语专业毕业生求职信
2013/11/23 职场文书
健康家庭事迹材料
2014/05/02 职场文书
体育专业求职信
2014/07/16 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
学生逃课检讨书
2015/02/17 职场文书
喋血孤城观后感
2015/06/08 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP