在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
則在稍后的時間開始執行。這表明協程實現了并發執行。