2024-04-19 19:29:32 发布
网友
我有一个复杂的数据对象。与另一个python进程共享它的最佳方式是什么?你知道吗
背景: 为了避免GIL,我生成了第二个进程来执行所有的计算。它使用UDP登录到主进程。这个计算过程需要输入数据,这是一个复杂的对象。那么我如何分享最简单的方法呢?你知道吗
GIL
UDP
我现在用的是:
process = multiprocessing.Process(target=start_remote_runner, args=(context,)) process.start()
这将context-对象传递给远程运行程序。这确实在内部使用pickle来传递对象。你知道吗
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.关闭()
如果不想通过文件传输,可以通过网络连接传输
我现在用的是:
这将
context
-对象传递给远程运行程序。这确实在内部使用pickle
来传递对象。你知道吗你考虑过用pickle把它连载吗?你知道吗
然后在另一个进程中加载:
类似的事情可以用其他格式来完成 导入json fid=open('jsonOutput','w') fid.写入(json.dumps文件(数据) fid.关闭()
如果不想通过文件传输,可以通过网络连接传输
相关问题 更多 >
编程相关推荐