这个
multiprocessing
模块提供3种启动流程的方法:
spawn
,
fork
和
forkserver
.我猜您使用的是基于Unix的系统,默认为
叉
方法文件
叉
注意安全
分叉多线程进程是有问题的
.
-
在通话现场复制发生上述问题的整个过程。
-
产卵
从头开始创建一个新的Python进程,并将所需的资源传递给它。
-
forkserver
创建一个单线程服务器进程,该进程将用作模板,以从中派生未来的进程。因为它是单螺纹的,所以这种叉子是安全的。
根据我的测试和描述,
任选一个
产卵
或
forkserver
exitcode
0
.
from multiprocessing import Process, set_start_method
set_start_method('spawn')
从Python 3.8到3.9的回归
叉
然而,方法让我担心,所以我离开了
a comment
在Python bug追踪器上。也许有人会解决这个问题,但正如我所说的,就文档而言,分叉多线程进程是不受支持的。