forkserver
forkserver是 Unix 下fork的优化版,先启动独立服务器进程,子进程从中 fork 而来,兼顾多线程安全与启动速度。
与 fork、spawn 对比
| 方式 | 启动速度 | 多线程安全 | 适用场景 |
|---|---|---|---|
| fork | 快 | 不安全 | 单线程程序 |
| spawn | 慢 | 安全 | 跨平台、多线程 |
| forkserver | 中等 | 安全 | Unix 多线程 + 多进程 |
原理
- 启动时创建干净的服务器进程
- 所有子进程从服务器进程 fork
- 避免主进程多线程状态污染
使用
| |
注意
- 仅 Unix 可用(Linux、macOS)
- 需在
if __name__ == "__main__"内调用 - 适用于多线程主进程创建子进程的场景
张芷铭的个人博客
Comments