有一個字典變量,需要在多個進程間共享
使用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()