推荐答案
-- -------------------- ---- ------- ------ ------- ----- --- ------------ -------------- ----- ---------------- -------------- ----- --- ------- ----- --------------------------- ------------ ------------ -------------------
本题详细解读
asyncio 库简介
asyncio
是 Python 标准库中的一个模块,用于编写异步 I/O 代码。它提供了事件循环、协程、任务和未来对象等工具,使得编写异步代码变得更加简单和直观。
关键概念
- 协程 (Coroutine): 使用
async def
定义的函数称为协程。协程可以在执行过程中暂停,并在适当的时候恢复执行。 - 事件循环 (Event Loop): 事件循环是
asyncio
的核心,负责调度和执行协程。 - 任务 (Task): 任务是对协程的封装,用于在事件循环中调度执行。
- Future:
Future
是一个低级别的对象,表示异步操作的最终结果。
代码解析
- 定义协程:
say_hello
是一个协程,它会打印 "Hello",然后等待 1 秒钟,最后打印 "World"。 - 使用
asyncio.gather
:gather
函数用于并发运行多个协程。在这个例子中,say_hello
协程被并发执行了三次。 - 运行事件循环:
asyncio.run(main())
启动了事件循环,并运行main
协程。
输出结果
Hello Hello Hello World World World
注意事项
await
关键字用于暂停协程的执行,直到等待的操作完成。asyncio.run
是 Python 3.7 引入的简化 API,用于运行异步程序。asyncio.gather
可以并发运行多个协程,并等待它们全部完成。