工作中遇到的实际问题 百度居然搜不到中文答案 特此记录下 感谢万能的stackoverflow
首先fork和spawn都是构建子进程的不同方式 区别在于
fork 除了必要的启动资源外 其他变量 包 数据等都继承自父进程 并且是copy-on-write的 也就是共享了父进程的一些内存页 因此启动较快 但是由于大部分都用的父进程数据 所以是不安全的进程
spawn 从头构建一个子进程 父进程的数据等拷贝到子进程空间内 拥有自己的Python解释器 所以需要重新加载一遍父进程的包 因此启动较慢 由于数据都是自己的 安全性较高
实际使用中可以根据子进程具体做什么来选取用fork还是spawn~
原问题链接 python - multiprocessing fork() vs spawn() - Stack Overflow



