python

Python协程如何实现任务调度

小樊
86
2024-11-09 12:27:41
栏目: 编程语言

在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())

在这个示例中,我们定义了两个协程task1task2,它们分别模拟执行耗时操作。在main协程中,我们使用asyncio.create_task()函数创建任务,并将它们添加到事件循环中。最后,我们使用await关键字等待所有任务完成。

当你运行这个程序时,你会看到以下输出:

Task 1 started
Task 2 started
Task 2 finished
Task 1 finished

这个输出表明,task2task1开始后立即开始执行,而task1在等待2秒后完成。这就是一个简单的任务调度示例,你可以根据需要扩展和修改它。

0
看了该问题的人还看了