在 Python 中,多線程(Multithreading) 和 多進程(Multiprocessing) 是實現并發編程的兩種主要方式。它們各有優劣,適用于不同的場景。
一、基本概念
特性 | 多線程(threading ) | 多進程(multiprocessing ) |
---|---|---|
并發模型 | 線程共享內存空間 | 每個進程擁有獨立內存空間 |
GIL(全局解釋器鎖) | 受限于 GIL,同一時間只有一個線程執行 Python 字節碼 | 不受 GIL 影響 |
資源消耗 | 小(輕量級) | 大(每個進程獨立運行) |
啟動速度 | 快 | 慢 |
進程/線程間通信 | 需要同步機制(如 Lock) | 支持多種 IPC(管道、隊列等) |
適用場景 | I/O 密集型任務 | CPU 密集型任務 |
二、原理
1. 多線程(threading
)
工作原理:
- 所有線程共享同一個進程的內存空間
- 使用
GIL(Global Interpreter Lock)
來保證同一時刻只有一個線程執行 Python 字節碼 - Python 的線程是操作系統原生線程封裝而來
示例代碼:
import threadingdef worker():print("Worker thread&#