首页 > 编程语言 >[Python]异步wait和gather

[Python]异步wait和gather

时间:2023-03-30 17:33:07浏览次数:37  
标签:f1 f2 Python gather print wait asyncio

相同点:

  • 从功能上看, asyncio.wait 和 asyncio.gather 实现的效果是相同的。
    不同点:
  • 使用方式不一样,wait需要传一个可迭代对象,gather传多个元素
  • wait比gather更底层,gather可以直接得到结果,wait先得到future再得到结果
  • wait可以通过设置timeout和return_when来终止任务
  • gather可以给任务分组,且支持组级别的取消任务
import asyncio


async def f1():
    print(1)
    await asyncio.sleep(3)
    print(2)
    return "f1"


async def f2():
    print(3)
    await asyncio.sleep(3)
    print(4)
    return "f2"


async def main():
    group1 = asyncio.gather(f1(), f1())
    group2 = asyncio.gather(f2(), f2())
    group1.cancel()
    all_groups = await asyncio.gather(group1, group2, return_exceptions=True)
    print(all_groups)


asyncio.run(main())

'''
3
3
4
4
[CancelledError(), ['f2', 'f2']]
'''

标签:f1,f2,Python,gather,print,wait,asyncio
From: https://www.cnblogs.com/leoshi/p/17273662.html

相关文章

  • inotifywait基本使用
    开始之前需要检测系统内核是否支持inotify方式一:使用uname-r命令检查Linux内核,如果低于2.6.13,就需要重新编译内核加入inotify的支持。方式二:使用ll/proc/sys/fs/inotify命令,是否有以下三条信息输出,如果没有表示不支持。-rw-r--r--1rootroot0Mar1615:43max_queued_e......
  • 如何把一个 Python 项目发布到 PyPI 上指南教程 All In One
    如何把一个Python项目发布到PyPI上指南教程AllInOne如何发布一个Python项目到PyPI上如何发布一个Python包到PyPI上https://pypi.org/user/xgqfrms/官方文档PackagingPythonProjects打包Python项目https://packaging.python.org/en/latest/tutorials/......
  • python中类成员修饰符
    在java,c#类的成员修饰符包括,公有、私有、程序集可用的、受保护的。对于python来说,只有两个成员修饰符:公有成员,私有成员成员修饰符是来修饰谁呢?当然是修饰成员了。那么pyt......
  • [Python]async异步爬虫
    importasyncioimportaiohttpasyncdefdownload_img(session,url):file_name=url.rsplit('/')[-1]print(f"下载图片:{file_name}")awaitasyncio.......
  • 【Python】函数的可变参数 *args 和 **kwargs的使用
    可变参数*args和**kwargs*args和**kwargs主要用于定义函数的可变参数,*args和**kwargs组合起来可以传入任意的参数。(注意:参数*args必须在**kwargs之前定义)*arg......
  • python——list求交集、并集、差集
    https://blog.csdn.net/qq_41985134/article/details/122956104   ......
  • python学习(二)
    1Python中的标识符和保留字有的单词赋予了特定的意义,在给对象起名字时不能使用例如代码:importkeywordprint(keyword.kwlist)结果:['False','None','True','and......
  • python+playwright 学习-42 离线安装 playwright 环境
    前言有些同学可能是在公司局域网办公,无法连到外网去在线下载,本篇教大家在本地局域网部署好playwright环境playwright本地下载先找个有网络的电脑,下载playwright,不要......
  • 连接 AI,NebulaGraph Python ORM 项目 Carina 简化 Web 开发
    作者:Steam&Hao本文整理自社区第7期会议中13‘21″到44’11″的PythonORM的分享,视频见https://www.bilibili.com/video/BV1s8411N7Cw在做业务开发时,Nebula......
  • python_Package相关
    将自己的工作,构建为python的Package并上传至PYPI,使得其他开发者可以通过pip安装并使用。这是我一直想做的事情,最近我成功将微博数据采集项目封装并上传至PYPI。为使得后续......