2014-03-27 32 views
0

Python 2.7的快速問題是子流程可見的全局變量,子流程可變更嗎?

全局變量是否對子進程可見?

一個子過程可以改變全局變量的值嗎?

非常感謝。

+0

如果您想在子進程中運行密切相關的Python代碼,請考慮['multiprocessing'模塊](http://docs.python.org/3/library/multiprocessing.html):它允許在進程間發送對象只需將它們作爲函數參數(在其他IPC方法中)傳遞 – jfs

回答

2

這些進程不共享general operating system條款中的變量。使用消息傳遞,共享內存等通信機制來實現進程間通信。

+0

你能分享一個進程間通信的例子嗎? – Shirley

+0

你可以參考這個討論[http://stackoverflow.com/questions/6920858/interprocess-communication-in-python](http://stackoverflow.com/questions/6920858/interprocess-communication-in-python ) –

1

不,全局變量對子進程不可見。變量對每個進程都是私有的。如果你想共享變量,那麼你需要使用某種形式的進程間通信。

+0

您能分享一個進程間通信的例子嗎? – Shirley

+0

你可以在這裏找到很多信息:http://www.google.com/webhp?q=python%20ipc#q=python+ipc –

0

也許最簡單的方法是將它們寫入文件並在另一個進程中從文件中讀取,儘管這可能需要額外的時間。