与其他进程共享复杂对象

2024-04-19 19:29:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个复杂的数据对象。与另一个python进程共享它的最佳方式是什么?你知道吗

背景: 为了避免GIL,我生成了第二个进程来执行所有的计算。它使用UDP登录到主进程。这个计算过程需要输入数据,这是一个复杂的对象。那么我如何分享最简单的方法呢?你知道吗


Tags: 数据对象方法进程过程方式udp背景
2条回答

我现在用的是:

process = multiprocessing.Process(target=start_remote_runner, args=(context,))
process.start()

这将context-对象传递给远程运行程序。这确实在内部使用pickle来传递对象。你知道吗

你考虑过用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=open('jsonOutput','w') fid.写入(json.dumps文件(数据) fid.关闭()

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

相关问题 更多 >