Python 非同步程式設計入門

Python 的 async/await 讓非同步程式設計變得簡單。這篇文章將介紹如何使用 asyncio 進行非同步開發。

為什麼需要非同步?

非同步程式設計可以大幅提升 I/O 密集型應用的效能。當一個任務在等待 I/O 操作時,CPU 可以處理其他任務。

async/await 基礎

import asyncio

async def fetch_data(url):
    # 模擬網路請求
    await asyncio.sleep(1)
    return f"Data from {url}"

async def main():
    tasks = [fetch_data(f"url_{i}") for i in range(5)]
    results = await asyncio.gather(*tasks)
    return results

常見模式

  1. 並發執行:使用 asyncio.gather() 同時執行多個任務
  2. 任務管理:使用 asyncio.create_task() 創建任務
  3. 錯誤處理:使用 try/except 處理非同步錯誤

實際應用場景

注意事項

非同步不是萬能的。對於 CPU 密集型任務,多進程可能更適合。選擇正確的工具很重要。