在Python中,协程(coroutines)是一种轻量级的线程,它们可以在执行过程中暂停和恢复。要实现任务调度,我们可以使用asyncio
库,它是Python 3.4及更高版本中的标准库。asyncio
库提供了事件循环(event loop)和一些用于创建和管理协程的工具。
以下是一个简单的任务调度示例:
import asyncio async def task1(): print("Task 1 started") await asyncio.sleep(2) print("Task 1 finished") async def task2(): print("Task 2 started") await asyncio.sleep(1) print("Task 2 finished") async def main(): # 创建任务 t1 = asyncio.create_task(task1()) t2 = asyncio.create_task(task2()) # 等待所有任务完成 await t1 await t2 # 运行事件循环 asyncio.run(main())
在这个示例中,我们定义了两个协程task1
和task2
,它们分别模拟执行耗时操作。在main
协程中,我们使用asyncio.create_task()
函数创建任务,并将它们添加到事件循环中。最后,我们使用await
关键字等待所有任务完成。
当你运行这个程序时,你会看到以下输出:
Task 1 started Task 2 started Task 2 finished Task 1 finished
这个输出表明,task2
在task1
开始后立即开始执行,而task1
在等待2秒后完成。这就是一个简单的任务调度示例,你可以根据需要扩展和修改它。