python协程:asyncio
asyncio 是 Python 的标准库,用于编写单线程的并发代码,它使用 async/await 语法。asyncio 提供了一套高层的 API 来运行和管理协程,同时也支持多种类型的并发操作,包括 TCP 和 UDP 通信、执行子进程、延时调用以及其他与 I/O 相关的任务。
asyncio 的基本用法
-
定义协程 (Coroutine): 使用
async def语法定义一个协程函数。这个函数可以使用await暂停其执行,等待另一个协程完成。pythonasync def my_coroutine(): await asyncio.sleep(1) print("Hello, asyncio!") -
运行协程 (Running Coroutine): 使用
asyncio.run()函数来运行最高层级的入口点协程。这个函数会运行事件循环,直到给定的协程完成。pythonasyncio.run(my_coroutine()) -
等待协程 (Awaiting Coroutines): 在协程中,你可以使用
await来等待另一个协程完成,这样当前协程会暂停执行,直到等待的协程完成。pythonasync def another_coroutine(): print("Start") await my_coroutine() print("End") -
任务 (Task): 任务是对协程的进一步封装,它可以让协程排入事件循环中运行。使用
asyncio.create_task()来创建任务。pythonasync def main(): task = asyncio.create_task(my_coroutine()) await task # 等待任务完成 asyncio.run(main()) -
并发运行 (Running Concurrently): 使用
asyncio.gather()可以并发运行多个协程。pythonasync def main(): await asyncio.gather( my_coroutine(), my_coroutine() ) asyncio.run(main())

浙公网安备 33010602011771号