zoukankan      html  css  js  c++  java
  • 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开发技巧:

      

  • 相关阅读:
    面向对象基础小结
    异常应用场景
    集合应用场景1:迭代器
    集合应用场景2——数据结构
    华为ce交换机 Bridge-Domain NVE
    linux 内核内置模块
    linux bridge 转发 ip
    iptables nat&conntrack
    loopback
    配置集中式网关部署方式的VXLAN示例(静态方式)
  • 原文地址:https://www.cnblogs.com/dhcn/p/9167295.html
Copyright © 2011-2022 走看看