multiprocessing の manager.list に二次元配列を与えて以下の処理を行ったら二次元配列の shared_list の値が変わりませんでした。
エラーが起きるわけではなく、一切値が変わっていない二次元配列が出力されました
理由が分かる方いましたら、ご教授願います。
python
1from multiprocessing import Process, Manager 2 3#100足していく関数 4def add(list): 5 6 for i in range(len(list)): 7 for j in range(len(list[i])): 8 list[i][j] += 100 9 10 11 12if __name__ == "__main__": 13 14 manager = Manager() 15 16 test = [[1, 2, 3], [4, 5, 6]] 17 18 #共有リストを作成 19 shared_list = manager.list(test) 20 21 #プロセス作成 22 p1 = Process(target = add, args = (shared_list,)) 23 24 p1.start() 25 p1.join() 26 27 print(shared_list) 28
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。