我有在Windows上工作的Python代码,但是在Linux上运行时它只是挂起。我正在使用JPype,因此我怀疑多个共享进程试图使用同一个管道访问JPype可能会出现问题(创建不同的进程,但挂在JPype行上)。是否有任何方法来强制在Pathos中生成复制Windows实现?(例如set_start_method,还是常规多处理库中的get_context?)
谢谢。
发布于 2016-11-16 15:05:53
回答我自己的问题(这有点讨厌),但在深入研究代码之后,您可以:
import multiprocess.context as ctx
ctx._force_start_method('spawn')这很好地解决了我和JPype挂起的问题。Linux的区别在于,当Windows生成一个新进程时,启动一个新的JVM (jpype.startJVM()),而分叉的进程必须使用相同的进程(所以我猜有多个进程试图使用同一个管道)。据我所知,set_start_method似乎还没有实现。
https://stackoverflow.com/questions/40615795
复制相似问题