【python】多进程共享变量

本文介绍了一个使用Python的multiprocessing模块中的Manager来创建一个可以在多个进程中共享的字典的示例。通过这个示例,可以了解到如何在多进程中更新和使用共享的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

使用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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值