我設計了一個python模塊,我想要在兩個不同的進程中運行2個方法(method1和method2)是否有可以同時讀取和寫入兩個進程的全局列表?或者這會在我的項目中引發問題?2個進程是否可以訪問同一個列表?
下面有一個例子:
from multiprocessing import Process, Queue
data =[]
def method1():
global data
data += [10,14,5]
def method2():
global data
data = [1,3,4]
proc = Process(target=method1)
proc.start()
print data
if __name__ == '__main__':
method2()
這必須是跨平臺的,Windows,Linux和OS X,在Python 2.7。
你是否需要這個跨平臺的,並保證安全,或只是對某些特定的Python實現和版本和平臺的安全? (如果是,哪些?) – abarnert
@abarnert請參閱編輯。 – Dean
你已經用'python-multithreading'(其中「通常指代'threading'模塊」)標記了這個標記,但實際上你正在詢問'multiprocessing'。兩者的答案實際上是不同的。 (使用'threading',答案是「你可能不應該想,但如果你真的想,你可以......」;使用'multiprocessing',它是「你絕對不應該想,而且你不能「) – abarnert