Python asyncio文档阅读摘要
文档地址:https://docs.python.org/3/library/asyncio.html
文档第一句话说得很明白,asyncio是单线程并发,这种event loop架构是很多新型异步并发技术的选择,包括Node.js、Spring Webflux等 过上篇提的Golang不是,而且有gopher不太承认event loop。
一、Base Event Loop
1、关于event loop:它是asyncio的中心执行调度设施,它有以下功能:
1.1、注册、调用、取消回调函数的执行
1.2、为各种通信通道提供客户服务器双端通讯机制
1.3、启动子进程,并使其与外部程序通信的通讯关联起来。
1.4、把耗时任务微弱给线程池
2、Call,绝大多数回调函数不接受关键字参数,如果你想给回调函数传参,那只能用functools.partial()
3、延迟调用:event loop 有它自己的内部时钟用来计算延迟时间。
4、Futures: Promise设计模式的实现
5、Tasks
6、Client-end: Creating connections
7、Server-end:Creating listening connections
8、观察文件描述符
9、低阶Socket操作
10、解析主机名
11、连接通道
12、Unix信号
13、Executor:执行器,在线程池里或者进程池里调用一个函数,event loop默认使用线程池
14、错误处理
15、debug模式
16、Server:Socket Server
17、Handle:可以用来取消一个函数的执行
18、Event Loop代码样例
二、Event Loop
1、Event loop的默认策略及设置,以及跨平台的一些问题
三、任务和协程
1、协程:iscoroutinefunction()和
iscoroutine()
2、任务:调度协程的执行,把它封装进future,一个任务是Future的子类
四、通讯和协议
1、asyncio用Transport抽象各种类型通信通道,asyncio目前支持长度transport有TCP、UDP、SSL和子进程通道。
2、协议:asyncio提供了一个基类用来实现自己的网络协议
五、基于协程的流API
六、子进程:高阶API与低阶API
七、同步操作元语:与threading的API设计相近
1、锁:Lock、Event、Conditon
2、信号量
八、消息队列
1、Queue:用来协调生产者和消费者协程
九、asyncio开发技巧:
Python asyncio文档阅读摘要的更多相关文章
- Keras 文档阅读笔记(不定期更新)
目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...
- Django文档阅读-Day1
Django文档阅读-Day1 Django at a glance Design your model from djano.db import models #数据库操作API位置 class R ...
- Django文档阅读-Day2
Django文档阅读 - Day2 Writing your first Django app, part 1 You can tell Django is installed and which v ...
- Django文档阅读-Day3
Django文档阅读-Day3 Writing your first Django app, part 3 Overview A view is a "type" of Web p ...
- 如何在命令行模式下查看Python帮助文档---dir、help、__doc__
如何在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...
- Node.js的下载、安装、配置、Hello World、文档阅读
Node.js的下载.安装.配置.Hello World.文档阅读
- 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读
本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...
- 转:苹果Xcode帮助文档阅读指南
一直想写这么一个东西,长期以来我发现很多初学者的问题在于不掌握学习的方法,所以,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的作用.从论坛.微博等等地方看到的初学者提出的问题,也暴露出 ...
- python统计文档中词频
python统计文档中词频的小程序 python版本2.7 效果如下: 程序如下,测试文件与完整程序在我的github中 #统计空格数与单词数 本函数只返回了空格数 需要的可以自己返回多个值 def ...
随机推荐
- android 随手记 读写文件的几种方式
java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 */ import java.io.BufferedRe ...
- LESS详解之编译LESS
掌握LESS,必须先掌握LESS的编译.因为LESS是CSS预处理语言的一种,是一种动态语言.LESS可以运行在各种语言和环境中,包括浏览器端.服务器端等.就因为是一种CSS预处理语言,所以需要编 ...
- java 笔试之在线模拟
网站地址: https://www.nowcoder.com
- Spring Web MVC 原理学习(下)
接着上一篇博客,这一篇.我们依据一个简单的demo,来对SpringMVC的原理再次学习: 一.配置web.xml 我们新建一个web项目.在 ...
- 谷歌浏览器禁止window.close的问题
当一个窗口不是通过window.open或者window.showModalDialog打开的时候,调用JS的window.close() 谷歌浏览器会提示如下警告,并拒绝执行 Scripts may ...
- imp与impdp比较
impdp和expdp是oracle 10g及以上版本才带的命令,目的是替换imp和exp命令,但为了向后兼容,故后面命令在高版本中依然可以使用. 但imp和exp在处理跨版本的导入导出时很麻烦,而i ...
- ribbon区域亲和配置一例
只需在springboot的配置文件中添加以下内容即可: eureka.instance.metadata-map.zone=left 该配置是一个eureka客户端的配置,并且该客户端使用了ribb ...
- Python学习笔记020——数据库知识概述
数据库概述 1 提供数据库的软件都有哪些 MySQL.SQL_Server.Oracle.DB2.Mariadb.MongoDB ... (1)是否开源 开源软件:MySQL.Mariadb.Mong ...
- Selenium-Grid工作原理
selenium-grid是由一个hub节点和若干个代理节点组成.hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行.使用seleni ...
- 转 Python标准库01 正则表达式 (re包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我将从正则表达式开始讲Python的标准库.正则表达式是文字处理中常用的工具,而且 ...