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