文档地址: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开发技巧:

最新文章

  1. 金融行业的BI应用分析
  2. 【Java每日一题】20161031
  3. php开发工具之火狐浏览器插件
  4. Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包)
  5. 渲染引擎之Camera
  6. CentOS+Nginx一步一步开始配置负载均衡
  7. VIM学习1
  8. CQOI2015 解题报告
  9. 通信技术:SSE设计方案(一)--- 前端Server-Sent Events概念讲解和基础类库完善发布
  10. MySQL——合并查询结果
  11. html初步学习
  12. 【C#写日志两个简单方法】
  13. 【Java每日一题】20170207
  14. composer 用法
  15. MIT Molecular Biology 笔记6 转录的调控
  16. 20155210 Exp7 网络欺诈防范
  17. css3鼠标经过出现转圈菜单(仿)
  18. django No migrations to apply 问题解决
  19. 导出/打印项目数据报表需要设置IE浏览器
  20. 安装Scala 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 错误

热门文章

  1. 分享几个.NET 下的计划任务组件
  2. 用BeanUtilsDate类型值为空报错的解决方法
  3. Swift教程_swift常见问题(0005)_完美解决Cannot override 'dealloc'异常
  4. 〖Linux〗Clang/Clang++ for Android Binary/NDK build(二进制可执行文件/NDK编译)
  5. POJ--2752--Seek the Name, Seek the Fame【KMP】
  6. POJ2226
  7. MySQL Desc指令相关
  8. 突破单机多实例Elasticsearch
  9. R语言-查找满足条件的数并获取索引
  10. ContactsContract.Contacts之sort_key