在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秒后完成。這就是一個簡單的任務調度示例,你可以根據需要擴展和修改它。