多进程共享数据,真正的通信Manager
Posted alex_huang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多进程共享数据,真正的通信Manager相关的知识,希望对你有一定的参考价值。
Managers
A manager object returned by Manager()
controls a server process which holds Python objects and allows other processes to manipulate them using proxies.
A manager returned by Manager()
will support types list
, dict
, Namespace
, Lock
, RLock
, Semaphore
, BoundedSemaphore
, Condition
, Event
, Barrier
, Queue
, Value
and Array
. For example,
from multiprocessing import Process,Manager import threading,time,os def sub(d,l): d[os.getpid()] = os.getpid() l.append(os.getppid()) print(l) #print(d) if __name__ == ‘__main__‘: with Manager() as M: #with..as的作用是把Manager()生成一个别名M,并只有在with内有效 d = M.dict() #用了with,下面也可以不用。 l = Manager().list(range(5)) p_list = [] #这个列表保存生成的多个进程 ,方便促一join()。等待全部完成, for i in range(10): t = Process(target=sub,args=(d,l)) t.start() p_list.append(t) for i in p_list: i.join() print(d,l)
...
以上是关于多进程共享数据,真正的通信Manager的主要内容,如果未能解决你的问题,请参考以下文章
python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)