python所有变量更新_Python多处理更新全局变量

我遇到了一个问题,我试图使用多处理启动多个进程,并尝试让每个进程更新一个全局dict对象。在

代码是: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中,但是一旦它返回,它就是{}。在

多个进程试图更新同一个变量时是否存在此问题?我知道对于多线程,这是一个问题,线程安全。在

任何建议都会非常有用!在

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值