您的位置:首页 > 编程语言 > Python开发

【python】多进程共享变量

2017-11-03 16:28 543 查看
有一个字典变量,需要在多个进程间共享

使用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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: