Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与其他进程共享复杂对象_Python_Multiprocessing_Ipc - Fatal编程技术网

Python 与其他进程共享复杂对象

Python 与其他进程共享复杂对象,python,multiprocessing,ipc,Python,Multiprocessing,Ipc,我确实有一个复杂的数据对象。与另一个python进程共享它的最佳方式是什么 背景: 为了避免GIL的问题,我创建了第二个进程来完成所有的计算。它使用UDP登录到主进程。这个计算过程需要输入数据,这是一个复杂的对象。那么,我如何以最简单的方式分享它呢 您是否考虑过使用pickle将其序列化 import pickle fid = open(filename,'w') fid.write(pickle.dumps(data)) fid.close() 然后将其加载到另一个进程中: fid = op

我确实有一个复杂的数据对象。与另一个python进程共享它的最佳方式是什么

背景:
为了避免GIL的问题,我创建了第二个进程来完成所有的计算。它使用
UDP
登录到主进程。这个计算过程需要输入数据,这是一个复杂的对象。那么,我如何以最简单的方式分享它呢

您是否考虑过使用pickle将其序列化

import pickle
fid = open(filename,'w')
fid.write(pickle.dumps(data))
fid.close()
然后将其加载到另一个进程中:

fid = open(filename,'r')
directData = fid.read()
data = pickle.loads(directData)
fid.close()
其他格式也可以做类似的事情 导入json fid=打开('jsonOutput','w') fid.write(json.dumps(数据)) fid.close()


如果您不想通过文件传输,您可以通过网络连接传输

我现在使用以下方法:

process = multiprocessing.Process(target=start_remote_runner, args=(context,))
process.start()
这会将
上下文
-对象传递给远程\u运行程序。这实际上在内部使用
pickle
传递对象