python基础 多进程 进程间通信 multiprocess
Posted flag_HW
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础 多进程 进程间通信 multiprocess相关的知识,希望对你有一定的参考价值。
有了之前多线程使用以及线程间queue的基础,多进程以及进程间通信就很好理解了,下面是多进程基本语法以及进程间通信简单示例
1 #多进程基本语法 2 import multiprocessing, time, os 3 4 def process_test(): 5 time.sleep(3) 6 print("my multiprocessing test") 7 print("my pprocess id is",os.getppid()) 8 print("my process id is",os.getpid()) 9 10 if __name__ == ‘__main__‘: #多线程必须写在if __name__后面,为什么??? 11 process = multiprocessing.Process(target=process_test) #启动子进程 12 process.start() 13 14 #多进程间数据通信,多进程的queue实际上是python将一个queue序列化后再反序列化给其它进程 15 #定义一个函数,第一个形参传递一个进程queue 16 def m_queue_test(Queue, name): 17 Queue.put(("multiprocess queue test",name)) #put一次只能传递一个数据对象,多个对象必须使用列表 元组 字典等传递 18 19 if __name__ == ‘__main__‘: 20 q = multiprocessing.Queue() #主进程实例化一个进程queue 21 process2 = multiprocessing.Process(target=m_queue_test, args=(q, "zsq")) #将q传递给子进程,由子进程往里面传递数据 22 process2.start() 23 print(q.get())#主进程从queue里面读数据
以上是关于python基础 多进程 进程间通信 multiprocess的主要内容,如果未能解决你的问题,请参考以下文章