【说站】python中Task封装协程
2023-06-13 09:13:16 时间
python中Task封装协程
说明
1、Task是Future的子类,Task是对协程的封装,我们把多个Task放在循环调度列表中,等待调度执行。
2、Task对象可以跟踪任务和状态。Future(Task是Futrue的子类)为我们提供了异步编程中最终结果的处理(Task类还具有状态处理功能)。
3、把协程封装成Task,加入一个队列等待调用。刚创建Task的时候不执行,遇到await就执行。
实例
import asyncio
async def func():
print(1)
await asyncio.sleep(2)
print(2)
return "返回值"
async def main():
print("main开始")
# 创建协程,将协程封装到Task对象中并添加到事件循环的任务列表中,等待事件循环去执行(默认是就绪状态)。
# 在调用
task_list = [
asyncio.create_task(func(), name="n1"),
asyncio.create_task(func(), name="n2")
]
print("main结束")
# 当执行某协程遇到IO操作时,会自动化切换执行其他任务。
# 此处的await是等待所有协程执行完毕,并将所有协程的返回值保存到done
# 如果设置了timeout值,则意味着此处最多等待的秒,完成的协程返回值写入到done中,未完成则写到pending中。
done, pending = await asyncio.wait(task_list, timeout=None)
print(done, pending)
asyncio.run(main())
以上就是python中Task封装协程的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
收藏 | 0点赞 | 0打赏
相关文章
- Python数据库同步神器(一键同步)
- Python入门系列(一)安装环境
- 【说站】python ChainMap增加子上下文的方法
- 【说站】python中的随机数种子seed()用法说明
- 【说站】python如何转换为私有属性
- Python的正则表达式_python正则表达式例子
- c++枚举类型enum输出_python中的枚举
- 让python快到飞起 | 什么是 DASK ?
- Python win32api_python api文档
- Python 封装zabbix-get接口
- Python基础之logging日志模块封装
- Python之CrawlSpider
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )
- Python 接口测试之结果集比较封装
- python-Python与PostgreSQL数据库-处理PostgreSQL查询结果
- Python封装机制及实现方法
- Python的Mysql connector封装详解编程语言
- Linux系统快速运行Python脚本(linux运行python脚本)
- 开发Linux下Python编程:实现自己的开发梦想(linux下python)
- 掌握Linux环境下的Python编程(linux执行python)
- Python如何连接PostgreSQL数据库?(python连接postgresql)
- 跟老齐学Python之模块的加载
- python求众数问题实例