詳解python如何修改多進程共享字典


  • 按照正常修改字典的邏輯修改字典,代碼如下:

import multiprocessing
multi_dict = multiprocessing.Manager().dict()
multi_dict.update({"dev1": {"app1": [11], "app2": [22]}, "dev2": {"app3": [33], "app4": [44]}})
print(multi_dict)
# 打印結果:{'dev1': {'app1': [11], 'app2': [22]}, 'dev2': {'app3': [33], 'app4': [44]}}
# 現在要更新dev1中app2的值,該怎么辦?
# 正常的修改方法
multi_dict['dev1']['app2'] = multi_dict['dev1']['app2'] + [222]
print(multi_dict)
# 打印結果:{'dev1': {'app1': [11], 'app2': [22]}, 'dev2': {'app3': [33], 'app4': [44]}}

可以看到並沒有修改成功

  • 稍微修改一下代碼

import multiprocessing
multi_dict = multiprocessing.Manager().dict()
multi_dict.update({"dev1": {"app1": [11], "app2": [22]}, "dev2": {"app3": [33], "app4": [44]}})
temp_dict = multi_dict["dev1"]
temp_dict["app2"] = temp_dict["app2"] + [222]
multi_dict["dev1"] = temp_dict
print(multi_dict)
# 打印結果:{'dev1': {'app1': [11], 'app2': [22, 222]}, 'dev2': {'app3': [33], 'app4': [44]}}

這樣就修改成功了 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM