Pathos:在 Linux 强制生成

Pathos: Enforce spawning on Linux

我有 Python 代码可在 Windows 上运行,但是当 运行 在 Linux 上运行时它只是挂起。我正在使用 JPype,所以我怀疑多个共享进程尝试使用同一管道访问 Java 可能存在一些问题(创建了不同的进程但挂在 JPype 行)。有什么方法可以强制在 Pathos 中生成以复制 Windows 实现? (例如 set_start_method,或常规多处理库中的 get_context?)

谢谢。

回答我自己的问题(这有点讨厌)但是在深入研究代码后你可以:

import multiprocess.context as ctx
ctx._force_start_method('spawn')

这很高兴地解决了我遇到的 JPype 挂起问题。 Linux 和 Windows 之间的区别在于,当 Windows 生成一个新进程时,将启动一个新的 JVM (jpype.startJVM()),而分叉进程必须使用同一个(所以我猜测有多个进程试图使用同一个管道到 Java)。 set_start_method 据我所知,似乎还没有实现。