python 的异步框架模型
python提供了asyncio模块来支持异步编程,其中涉及到coroutines、eventloops、futures三个重要概念;
eventloops主要负责跟踪和调度所有异步任务,编排具体的某个时间点执行的任务;
coroutines是对具体执行任务的封装,是一个可以在执行中暂停并切换到eventloops执行流程的特殊类型的函数;其一般还需要创建task才能被eventloops调度;
futures负责承载coroutines的执行结果,其随着任务在eventloops中的初始化而创建,并随着任务的执行来记录任务的执行状态;
异步编程框架的整个执行过程涉及三者的紧密协作;
首先eventloops启动之后,会从任务队列获取第一个要执行的coroutine,并随之创建对应task和future;
然后随着task的执行,当遇到coroutine内部需要切换任务的地方,task的执行就会暂停并释放执行线程给eventloop,eventloop接着会获取下一个待执行的coroutine,并进行相关的初始化之后,执行这个task;
随着eventloop执行完队列中的最后一个coroutine才会切换到第一个coroutine;
随着task的执行结束,eventloops会将task清除出队列,对应的执行结果会同步到future中,这个过程会持续到所有的task执行结束;
以上内容为大家介绍了python的异步框架模型,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

相关推荐HOT
更多>>
文本处理用c还是用python
文本处理python与c的对比:如下c++语言:C++语言实现C++中没有实现split功能的函数,下面用C++STL中的一些函数模拟实现split功能。#include#inc...详情>>
2023-11-06 23:42:24
Python什么是函数式编程?
函数式编程使用一系列的函数解决问题。函数仅接受输入并产生输出,不包含任何能影响产生输出的内部状态。任何情况下,使用相同的参数调用函数始...详情>>
2023-11-06 17:27:35
列举python常见的内置函数
abs()返回数字的绝对值map根据函数对指定序列做映射map()函数接收两个参数,一个是函数,一个是可迭代对象,map将传入的函数依次作用到序列的每...详情>>
2023-11-06 15:21:35
Python之select、poll、epoll模型的区别
select、poll、epoll模型的区别?(属于多路复用IO的模型)都是i/o多路复用的机制,监视多个socket是否发生变化,本质上都是同步i/oselect,poll实...详情>>
2023-11-06 14:44:24