如果我想使用multiprocessing分享对象, 根据具体情况,我应该使用以下哪一项?
multiprocessing.Array
Value
仅适用于ctypes
的对象(但ctypes
是什么?numpy.ndarray
ctypes
或networkx.Graph
)Manager
可用于任意Python对象,但我需要包装对象方法请帮助纠正我的理解。谢谢!
答案 0 :(得分:0)
Value
是标量,它只能保存一个数据时间。因此,如果您想在不同流程之间共享说char
,double
,int
或float
,请使用Array
。与Value
不同,Array
可以包含多个值。
有关Python ctypes
中定义的ctypes
的详尽列表,请查看此文档:Fundamental data types。因此,int
,bool
,long
,short
和许多其他人都是C编程语言中的数据类型。
对于Manager
对象,我认为文档内容非常广泛:
管理器提供了一种创建可在不同进程之间共享的数据的方法,包括在不同计算机上运行的进程之间通过网络共享。管理器对象控制管理共享对象的服务器进程。其他进程可以使用代理访问共享对象。
你可能想知道这是怎么回事!你只需要使用代码来看看它们是如何组合在一起的,它并不复杂。