在Python中,协程(coroutines)是一种特殊的函数,可以在执行过程中暂停和恢复。要实现并发,可以使用asyncio
库,它是Python 3.4及更高版本中的标准库。以下是使用asyncio
实现协程并发的示例:
import asyncio
async def coroutine_example(task_name, delay):
print(f"{task_name} 开始执行")
await asyncio.sleep(delay)
print(f"{task_name} 执行完成")
async def main():
# 创建协程任务列表
tasks = [
coroutine_example("Task1", 2),
coroutine_example("Task2", 1),
coroutine_example("Task3", 3),
]
# 并行运行协程任务
await asyncio.gather(*tasks)
# 运行事件循环
asyncio.run(main())
在这个示例中,我们定义了一个名为coroutine_example
的协程函数,它接受一个任务名称和一个延迟时间作为参数。在函数内部,我们使用await asyncio.sleep(delay)
来模拟执行耗时操作。
在main
函数中,我们创建了一个包含三个协程任务的列表,然后使用asyncio.gather(*tasks)
来并行运行这些任务。最后,我们使用asyncio.run(main())
来启动事件循环并运行main
函数。
当你运行这个程序时,你会看到以下输出:
Task1 开始执行
Task2 开始执行
Task3 开始执行
Task2 执行完成
Task1 执行完成
Task3 执行完成
这个输出表明,Task1
和Task2
几乎同时开始执行,而Task3
则在稍后的时间开始执行。这表明协程实现了并发执行。