asyncio
是Python标准库中用于编写异步代码的模块,它提供了一种基于协程的方式来处理并发任务。使用asyncio
可以编写高效的异步程序,利用事件循环在单个线程中管理多个任务的执行。
下面是asyncio
的基本概念和入门示例:
基本概念:
-
协程(coroutine):使用
async def
定义的异步函数,可以在其中使用await
关键字来等待其他协程或异步操作的完成。 -
事件循环(event loop):通过
asyncio.get_event_loop()
获取的对象,用于驱动协程的执行并管理任务的调度。 -
任务(task):用于封装协程的对象,可以通过
asyncio.create_task()
创建并交给事件循环执行。 -
Future对象:表示一个尚未完成的异步操作,可以通过
asyncio.Future()
创建,并通过await
关键字等待其完成。
入门示例:
import asyncio# 定义一个异步函数
async def greet():print("Hello")await asyncio.sleep(1) # 模拟耗时操作print("World")async def main():# 创建任务并添加到事件循环中task1 = asyncio.create_task(greet())task2 = asyncio.create_task(greet())# 等待任务完成await asyncio.gather(task1, task2)# 获取事件循环并运行main函数
asyncio.run(main())
在上面的示例中,greet()
是一个简单的异步函数,main()
是另一个异步函数,用于创建并等待多个任务。asyncio.run(main())
会运行事件循环,驱动main()
函数的执行。
asyncio
是一个强大且灵活的工具,可以用于构建各种类型的异步应用程序,如网络服务、Web框架和并发任务管理等。