後端語言 基礎

並發(Concurrency)與平行(Parallelism)的差異是什麼?

AI 練習作答

並發 vs 平行

定義

並發(Concurrency) 多個任務「看起來」同時進行,但可能交替執行(單核心也能做到)

  • 關注:任務的管理與切換
  • 例:一個廚師同時處理多道菜(切換注意力)

平行(Parallelism) 多個任務「真正地」同時執行(需要多核心)

  • 關注:實際同時運算
  • 例:多個廚師各自做一道菜

關係

  • 平行是並發的子集:可以並發但不平行,不能平行但不並發
  • 並發是設計問題,平行是硬體問題

各語言/框架的實作

語言/框架 並發機制 真平行
Node.js Event Loop + async/await Worker Threads
Python asyncio / threading multiprocessing
Go Goroutines + Channels 是(GOMAXPROCS)
Java Threads
Rust async/await + tokio

面試加分:Rob Pike(Go 語言設計者)名言:「Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.」

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分