2016-07-08 13 views
1

Ich möchte eine Liste ändern, indem Sie Elemente anhängen, die von einigen Funktionen generiert werden, die parallel arbeiten. Etwas wie folgt aus:Ändern globaler Variablen mit Multiprocessing

import multiprocessing 
my_list=[] 

def f(x): 
    global my_list 
    my_list.append(x) 

for i in range(6): 
    p = multiprocessing.Process(target=f, args=(i,)) 
    jobs.append(p) 
    p.start() 

for job in jobs: 
    job.join() 

Ich erwarte, wie etwas zu sehen:

In : my_list 
Out: [0,1,2,3,4,5] 

jedoch die Ausgabe eine leere Liste ist:

In : my_list 
Out: [] 

Wissen Sie, warum dies geschieht und wie kann Ich passe den Code an, damit er die globale Variable ändert.

Antwort

Verwandte Themen