溫馨提示×

Python協程如何實現并發

小樊
113
2024-10-30 20:30:33
欄目: 編程語言

在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 執行完成

這個輸出表明,Task1Task2幾乎同時開始執行,而Task3則在稍后的時間開始執行。這表明協程實現了并發執行。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女