pythonasyncio在哪个版本好_总结python3.8版本中asyncio的常用模块及使用方法(一. 协程和任务)...

本文介绍了Python 3.8版本中asyncio模块的使用,包括协程、异步任务的创建和管理,强调了asyncio.run()和asyncio.create_task()函数的作用。同时,提醒读者注意3.8版本中不再推荐使用的API,并预告了在Python 3.10版本中将被弃用的函数。
摘要由CSDN通过智能技术生成

刷了一遍3.8文档中asyncio的部分, 总结一些基本的知识点, python后续版本中, 这个模块更新目测也会比较频繁, 虽然到3.6为止, 这个模块还不是很好用, 但从目前来看, python最新版本更新的asycnio模块已经越来越趋于稳定了.

3.8版本中有一部分的api已经宣布不推荐使用, 并会在python3.10版本中弃用, 本文章中已过滤掉将会弃用的函数,并在文章最后简要概括.

本文内容基于python3.8官方文档编写, 很多内容与python3.8官方文档相同, 英语较好的童鞋请直接阅读官方文档:

ok~ 开始扯皮~

先解释一下高级函数和低级函数:

越高级的函数封装的越完整, 越有可能被用户使用.

越低级的函数, 则越接触底层, 越有可能用户基本用不到.

1.1 协程

使用async/await语法声明的协程是编写异步应用程序的首选. 例如, 以下代码段(需要python3.7+)打印"hello", 等待1秒钟, 然后打印"hello"

>>> import asyncio

>>> async def main():...

print('hello')...

await asyncio.sleep(1)...

print('world')

>>> asyncio.run(main())

hello

world

复制代码

请注意,仅调用协程不会调度它的执行:

>>> main()

为了实际运行协程,asyncio提供了三种主要机制:

使用asyncio.run()函数来运行顶层入口函数"main"(请参照上面的例子)

等待协程. 下面的代码片段将在等待1秒钟后显示“ hello”,然后在等待另外 2秒钟后显示“ world” :

import asyncio

import time

async def say_after(delay, what):

await asyncio.sleep(delay)

print(what)

async def main():

print(f"started at {time.strftime('%X')}")

await say_after(1, 'hello')

await say_after(2, 'world')

print(f"finished at {time.strftime('%X')}")

asyncio.run(main())

复制代码

预期的输出:

started at 17:13:52

hello world

finished at 17:13:55

复制代码asyncio.create_task()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值