2016-03-25 5 views
0

Birden çok işlemi birden çok işlem kullanarak başlatmaya çalıştığım bir sorun yaşıyorum ve her işlemin genel bir dict nesnesini güncellemesini sağlamaya çalışıyorum.Python MultiProcessing Global Değişken Güncelleniyor

Kod geçerli:

import multiprocessing 

jobs = [] 

master_dict = {} 

def worker_function(list1, id): 
    master_dict[str(id)] = {} 

    for i in list1: 
     # 
     # using pymssql here to get a cursor of rows from a SELECT query 
     # 
     master_dict[str(id)][i] = [] 

     for row in cursor: 
      master_dict[str(id)][i].append(row) 

    return 

def multi_function(): 
    for i in list2: 
     my_proc = multiprocessing.Process(name='multi_process', target=worker_function, kwargs={'list1': session['something'], 'id': i}) 

     jobs.append(my_proc) 
     my_proc.start() 

    for job in jobs: 
     job.join() 
return master_dict{} 

Ben döndürür ancak bir kez, o veri master_dict ekleniyor görüyorum, yol boyunca ekleniyor baskı ne zaman, basitçe {}.

Bu, aynı değişkeni güncellemeye çalışan çoklu süreçlerle ilgili bir sorun mu? Birden çok iş parçacığı ile biliyorum bu iş parçacığı güvenliği için bir sorun.

Her türlü öneri inanılmaz derecede yardımcı olabilir!

Teşekkür

cevap