9

我有一个主 Python 进程,以及由主进程使用os.fork().

我需要将大量且相当复杂的数据结构从工作人员传回主进程。您会为此推荐哪些现有库?

数据结构是列表、字典、numpy数组、自定义类(我可以调整)和上述多层组合的混合。

应避免磁盘 I/O。如果我也可以避免创建数据的副本——例如通过某种共享内存解决方案——那也很好,但不是硬约束。

出于这个问题的目的,必须使用os.fork()或其包装器创建工作程序,该包装器将克隆主进程的地址空间。

这只需要在 Linux 上工作。

4

1 回答 1

4

multiprocessing的队列实现有效。在内部,它将数据腌制到管道中。

q = multiprocessing.Queue()
if (os.fork() == 0):
    print(q.get())
else:
    q.put(5)
# outputs: 5
于 2018-04-06T20:36:51.257 回答