当前位置:家常菜>百科>科技>正文

python asyncio

人气:165 ℃/2024-05-27 09:50:50

python协程库asyncio的运行方式有哪些?我们一起了解一下吧!

asyncio 是以协程的模式来编写并发的库,使用 async/await 语法。在 IO密集型 的网络编程里,异步IO 协程 省去了开辟新的线程和进程的开销。asyncio 是 Python3.4 版本引入到标准库,python3.5 加入了 async/await 特性。下面我们就来分享一下运行协程的几种方式。

使用 async 声明协程

async def asyncTask():

    # 协程休眠

    await asyncio.sleep(1)

    print(time.strftime('%X'))

运行协程的几种方式:

1、asyncio.run() 函数用来在非协程函数中调用协程

asyncio.run(asyncTask())

2、使用 await 等待一个协程。

await asyncTask()

3、asyncio.create_task() 用函数将协程打包为一个 Task 排入日程准备执行,返回 asyncio.Task 对象。

此函数 在 Python 3.7 中被加入。

task1 = asyncio.create_task(asyncTask1())task2 = asyncio.create_task(asyncTask2())await task1await task2

4、使用 asyncio.gather() 函数来并发多个协程。

tasks = asyncio.gather(asyncTask1(), asyncTask2())tasks2 = asyncio.gather(*[asyncTask1(), asyncTask2()])await tasksawait tasks2

具体示例:

import asyncioimport time# 定义协程任务async def asyncTask1():

    # 协程休眠

    await asyncio.sleep(1)

    print(time.strftime('%X'), 1)async def asyncTask2():

    await asyncio.sleep(2)

    print(time.strftime('%X'), 2)async def main():

    task1 = asyncio.create_task(asyncTask1())

    task2 = asyncio.create_task(asyncTask2())

    tasks = asyncio.gather(asyncTask1(), asyncTask2())

    tasks2 = asyncio.gather(*[asyncTask1(), asyncTask2()])    await tasks    await tasks2    await task1    await task2

print(time.strftime('%X'), "start")

asyncio.run(main())

print(time.strftime('%X'), "end")

关于运行协程的方式,我们就了解到这啦!

  • 凌渡改装轮毂可以吗?

    凌渡改装轮毂注意事项:1、改装轮毂不宜改装过宽尺寸,轮毂越大,为了保持车辆扁平比,轮胎就会越薄,对地面的感受就更明显,通过凹凸不平的路段时会大大降低乘车人的舒适度;2、需要时常...

    问答查看全文>>
  • 2022年财务人员工作总结

    财务人员工作总结怎么写呢?一起来看看小编今天的分享吧。1、财务人员工作总结首先可以描写作为财务人员的日常基础工作和职责,例如编制各类财务报表等;2、然后可以描写具备的专业知识和...

    教育查看全文>>
  • 安全带拉出来弹不回去怎么办

    是卷带弹簧长时间使用失去弹性导致的。解决此问题只需要更换卷带弹簧,或更换整个安全带机构。很多车子随着使用时间的增加,都会出现安全带不能自动弹回去的问题。有些是因为安全带脏污导致...

    问答查看全文>>
  • 什么让生活更美好小学作文范文

    什么让生活更美好小学作文怎么写?要从哪些方面去写,一起来看看小编今天的分享吧。什么让生活更美好小学作文主要由三个部分构成。首先明确本次作文的主题,叙述关于想要记录主题事项的具体...

    教育查看全文>>
  • 大众桑塔纳水温表指针如何看

    只用水温报警灯,红灯是表示水温过高;蓝灯表示水温过低。新款大众桑塔纳没有水温表,只有水温报警灯。水温报警灯亮提示车主及时添加防冻液。当水温灯亮红灯时表明发动机水温过高,需停车休...

    问答查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版