0
マルチプロセスを使用して複数のプロセスを起動し、各プロセスがグローバルdictオブジェクトを更新しようとするときに問題が発生します。Python MultiProcessingグローバル変数の更新
コードである:私は道に沿って付加されているものを印刷するとき
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{}
、私はそれを返ししかしと、そのデータがmaster_dictするために添加されている参照を行う、それは} {単純です。
同じ変数を更新しようとしている複数のプロセスに問題がありますか?スレッドセーフであるため、複数のスレッドでこれが問題になることがわかりました。
非常に参考になる候補があります。
ありがとうございました