ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

初探 Python 並發(Concurrency) 及 並行(Parallelism)

初探 Python 並發(Concurrency) 及 並行(Parallelism)

前言

透過比喻和案例說明,在 Python 中,並發 (Concurrency) 和並行 (Parallelism) 兩者的區別

簡單說明:

並發 (Concurrency) 是指「處理很多事情的能力」(多任務交替執行)。

並行 (Parallelism) 是指「同時做很多事情的能力」(多任務同時執行、需要多個 CPU 核心)。

比喻咖啡廳:

並發(Concurrency)多任務交替執行

假設咖啡廳,僅一個店員時。待客人點餐後,他先行煮咖啡,在等煮咖啡的空檔時間,他可能轉身去幫另一位客人拿蛋糕。看起來雖然像是同時進行、處理了很多人,但任何時間他都只在做一件事。

並行(Parallelism)多任務同時執行

假設咖啡廳,有兩個店員。一個在處理點餐,另一個同時在煮咖啡。這兩件事是在時間上同時進行的

Python 實現:

並發(Concurrency)方式:

  • 多線程 (Threading)
  • 協程 (Asyncio)

適用場景:

        I/O 密集型(例如爬蟲、網路請求、讀寫檔案、資料庫查詢)。

        高併發的網路服務(如 FastAPI)。

特點:

        當一個線程在等網路回傳時,Python 會切換到另一個線程,提高效率。

        資源消耗極低,單核心就能處理上萬個連線。

Python 實現 並行(Parallelism)方式:

  • 多進程 (Multiprocessing)

適用場景:CPU 密集型(例如數學計算、影像處理、大數據運算)。

特點:真正利用多核 CPU 的威力,讓多個任務同時跑在不同的核心上。

案例

這些程式碼會模擬「網路請

返回列表