python 多线程通信之Queue

#进程之间的通信 # 1.Queue #跟线程里的queue类似但是不同 from multiprocessing import Process,Queue import os def f(q, n): q.put([11, n, None]) print(\'subpro\',id(q)) if __name__==\'__main__\': q=Queue() print(\'mainpro\',id(q)) lst=[] for i in range(3): p=Process(target=f,args=(q,i)) #必须把q传进去,因为不同进程间内存是不共享的 lst.append(p) p.start() print(q.get()) print(q.get()) print(q.get()) for i in lst: i.join() # 主进程和其他子进程q(队列)的内存地址是不同的,说明并不是相同的q,python内部进行了一些操作, # 可能是进程之间在传递队列时,进行了pickle操作。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzdfp.html