0

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

谢谢。

4

1 回答 1

2

要回答我自己的问题(这有点讨厌),但在挖掘代码之后,您可以:

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

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

于 2016-11-16T15:05:53.850 回答