首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Python async/await同时运行两个任务?

使用Python的async/await关键字可以实现并发执行多个任务。async/await是Python 3.5版本引入的异步编程语法,它基于协程(coroutine)的概念,可以简化异步编程的复杂性。

要同时运行两个任务,可以定义两个异步函数,并在主函数中使用asyncio库来调度这两个任务。下面是一个示例代码:

代码语言:txt
复制
import asyncio

async def task1():
    # 第一个任务的逻辑代码
    await asyncio.sleep(1)
    print("Task 1 completed")

async def task2():
    # 第二个任务的逻辑代码
    await asyncio.sleep(2)
    print("Task 2 completed")

async def main():
    # 创建一个事件循环
    loop = asyncio.get_event_loop()

    # 并发运行两个任务
    await asyncio.gather(task1(), task2())

    # 关闭事件循环
    loop.close()

# 运行主函数
asyncio.run(main())

在上面的代码中,我们定义了两个异步函数task1task2,分别表示两个需要并发执行的任务。在main函数中,我们使用asyncio.gather函数来同时运行这两个任务。asyncio.gather函数可以接收多个协程对象,并返回一个协程对象,它会等待所有的协程任务完成。

最后,我们使用asyncio.run函数来运行主函数main,它会创建一个新的事件循环并运行主函数。在主函数中,我们首先获取事件循环对象,然后使用await asyncio.gather(task1(), task2())来并发运行两个任务。最后,我们关闭事件循环。

这样,两个任务就会同时运行,并且在完成后打印相应的完成信息。

关于Python的async/await语法和异步编程的更多细节,可以参考腾讯云的文档:Python异步编程

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

[译]PEP 525--异步生成器

花下猫语: 与生成器密切相关的 PEP 有 4 个,在翻译完《PEP255--简单的生成器》之后,我在交流群里说出了继续翻译的想法。恰巧,@cxapython 同学正着迷于异步,被我激起了翻译的念头,他竟然一连翻译出两篇介绍异步的 PEP:《PEP 530--异步推导式》《PEP 525--异步生成器》。今天,我给大家转载了第二篇(为了我们的生成器系列),大家若觉得赞,可以关注一下他的公众号哦。至于我正在翻译的 PEP 342,由于里面纯文字的内容太多了(估计全文近7000字),加上我这周比较忙,只能再拖稿两天了。最后,小声透露一下,我建了个 github 项目,计划收集与推进 PEP 的翻译,欢迎给 star 和做贡献哦。地址:https://github.com/chinesehuazhou/peps-cn

03
领券