我确实有一个复杂的数据对象。与另一个Python进程分享的最佳方式是什么?与另一个进程共享复杂对象
背景: 为了避免GIL
我产生了第二个过程,完成所有的计算。它使用UDP
登录到主进程。这个计算过程需要输入数据是这个复杂的对象。那么我如何分享它是最简单的方式?
我确实有一个复杂的数据对象。与另一个Python进程分享的最佳方式是什么?与另一个进程共享复杂对象
背景: 为了避免GIL
我产生了第二个过程,完成所有的计算。它使用UDP
登录到主进程。这个计算过程需要输入数据是这个复杂的对象。那么我如何分享它是最简单的方式?
我现在使用如下:
process = multiprocessing.Process(target=start_remote_runner, args=(context,))
process.start()
这传递context
-object到remote_runner。这确实在内部使用pickle
来传递对象。
你有没有考虑使用泡菜序列化?
import pickle
fid = open(filename,'w')
fid.write(pickle.dumps(data))
fid.close()
然后加载它在其他过程:相似可以与其他格式 进口JSON FID =开放( 'jsonOutput', 'W') fid.write进行
fid = open(filename,'r')
directData = fid.read()
data = pickle.loads(directData)
fid.close()
东西(json.dumps(数据)) fid.close()
如果你不想通过要传输的文件,你可以传输通过网络连接