我有以下問題。我寫了一個函數,它將列表作爲輸入併爲列表中的每個元素創建一個字典。然後我想把這個字典附加到一個新的列表中,所以我得到了一個字典列表。我正在嘗試爲此產生多個進程。我的問題在於,我希望不同的進程訪問字典列表,因爲它是由其他進程更新的,例如,在已經達到特定長度時打印某些內容。 我的例子是這樣的:在python的不同進程之間共享列表
import multiprocessing
list=['A', 'B', 'C', 'D', 'E', 'F']
def do_stuff(element):
element_dict={}
element_dict['name']=element
new_list=[]
new_list.append(element_dict)
if len(new_list)>3:
print 'list > 3'
###Main###
pool=multiprocessing.Pool(processes=6)
pool.map(do_stuff, list)
pool.close()
現在我的問題是,每個進程創建自己的new_list
。有沒有辦法在進程之間共享列表,以便所有字典都附加到同一個列表中?或者是在函數之外定義new_list
的唯一方法?
使用[隊列](https://docs.python.org/3/library/multiprocessing.html#pipes-and-queues)。 –
或[Array](https://docs.python.org/3.5/library/multiprocessing.html#sharing-state-between-processes) – alexpeits