【python】多进程共享变量

有一个字典变量,需要在多个进程间共享

 

使用Manager, 下面是一个小例子。 注意使用json前需要将类型转换。

#!/usr/bin/python
# coding=utf-8


import json
from multiprocessing import Process, Lock, Manager


def deal(data, lock, share_dict):
    # do something
    share_dict["test"] = 10
    mydict = dict(share_dict)  # 注意,共享dict无法直接dumps,会报类型错误,必须先转换为普通字典
    json.dumps(mydict)

def deal_multi():
    data = "test"
    n = 10
    process = list()
    lock = Lock()    #  多进程锁
    m = Manager()    
    share_dict = m.dict()   #  多进程共享变量 字典
    for i in xrange(n):
        process.append(Process(target=deal, args=(data, lock, share_dict)))
    for p in process:
        p.start()
    for p in process:
        p.join()


if __name__ == '__main__':
    deal_multi()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值