2016-07-17 38 views
1

我有兩個單獨的Python進程在Linux服務器上運行,p1和p2,如何從p2讀取p1的字典?如何在單獨的Python進程中共享一個字典?

兩個進程是獨立的,所以我不能使用基於多進程的方法,並且由於性能低下,我不想使用套接字通信或基於文件的方法。 我的python版本是3.5.1

+0

http://stackoverflow.com/questions/1268252/python-possible-to-share-in-memory-data-between-2-separate-processes – Igor

+0

通過兩個獨立的進程,你的意思是不同的兩個控制檯工作,或在一個控制檯中的兩個python腳本?如果它是第一個,我不會看到另一個選項,但套接字數據傳輸,如果它是第二個,則可以將字典存儲在腳本所在的文件夾中(也可以作爲文本文件),並從另一個腳本。 – Rockybilly

+2

「如何在單獨的python進程之間共享」 - 「這不是關於多處理」。我很困惑。 – spectras

回答

0

我認爲這樣做的唯一方法就是使用IPC。你可以用插座,PIPES做到這一點。對於所有這些方法,您必須用pickle或json將它們串連起來。如果字典很大,則可能需要幾秒鐘的時間。

如果你不想這樣做,你應該有一些共享內存。 Multiprocessing允許但僅限於基本數據類型。

+0

我剛剛更新了我的問題,兩個進程是獨立的,所以我不能使用基於多處理的方法,並且由於性能低下,我不想使用套接字通信或基於文件的方法。 –

+0

幾周前我正面臨這個問題。唯一的方法是通過共享內存,但是我沒有找到任何字典。 – edgarstack

+0

共享內存只能在分叉進程之間使用,如何在獨立進程之間使用它? –

相關問題