我確實有一個複雜的數據對象。與另一個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()
如果你不想通過要傳輸的文件,你可以傳輸通過網絡連接