在寫程式的時候,我們常常會遇到這樣的情境:
👉「我要同時做很多工作,但如果一個一個等,會浪費很多時間。」
這時候,就可以用 Thread(執行緒) 來幫忙!
🧑💻 什麼是 Thread?
- Process(程序):好比一間公司。
- Thread(執行緒):就像公司裡的員工。
一間公司(Process)可以有很多員工(Thread),每個員工都可以同時做不同的工作。
這樣效率就會比一個人單打獨鬥好很多。
📌 範例:兩個員工同時工作
先來看一個簡單的程式:
import threading
import time
def worker(name):
print(f"{name} 開始工作")
time.sleep(2) # 模擬需要花 2 秒的工作
print(f"{name} 工作完成")
# 建立兩個 Thread(兩個員工)
t1 = threading.Thread(target=worker, args=("員工A",))
t2 = threading.Thread(target=worker, args=("員工B",))
# 啟動 Thread
t1.start()
t2.start()
# 等待兩個 Thread 完成
t1.join()
t2.join()
print("全部工作完成!")
輸出結果:

🔍 程式解釋
threading.Thread(...)
建立一個新的執行緒,指定要執行的函式worker
,並傳入參數(員工名字)。.start()
讓這個執行緒開始工作。.join()
等待這個執行緒結束,確保程式最後不會提早結束。
⏱ 執行效果
如果用 單一員工(不用 Thread),邏輯會是這樣:
- 員工A 開始 → 等 2 秒 → 員工A 完成
- 員工B 開始 → 等 2 秒 → 員工B 完成
- 總共花 4 秒
但現在用了 Thread(兩個員工同時工作):
- 員工A 開始、員工B 開始(幾乎同時)
- 等 2 秒 → 員工A 完成、員工B 完成
- 總共只花 2 秒
🎯 總結
- Thread = 讓程式同時做多件事的小幫手。
- 適合用在 I/O-bound 任務(需要等待的工作,如下載、讀檔、API 請求)。
- 在 Python 裡,用
threading.Thread
就能輕鬆建立多個工作同時進行。
推薦hahow線上學習python: https://igrape.net/30afN
🏢 公司員工比喻
1. Threading = 多個員工
- 公司(Process)裡有很多員工(Thread)。
- 每個員工可以同時做不同的工作。
- 缺點:
- 員工之間要共享資源(例如同一台影印機),可能會打架(需要鎖 Lock)。
- 招太多員工(Thread)會增加管理成本(記憶體、CPU 切換)。
2. Async(非同步)= 一位超級員工
- 公司只有一個超級員工(Event Loop)。
- 他雖然一次只能做一件事,但 非常會切換:
- 在等影印機時,不會傻傻站著,會先去回 email。
- 在等同事回覆時,會先去整理資料。
- 這樣就能用「單一人力」高效率完成很多工作。
- 缺點:
- 如果遇到一件非常耗體力(CPU-heavy)的工作,他就完全卡死,別的事都做不了。
🧑💻 適用場景比較

🎯 總結
- Threading:多員工 → 適合「同時做很多需要等待的工作」。
- Async:一位超級員工 → 適合「大量小工作,主要是等網路」。
- Multiprocessing:多公司 → 適合「重度計算」。
近期留言