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的主要内容,如果未能解决你的问题,请参考以下文章

python基础之进程间通信进程池协程

Python开发基础--- 进程间通信进程池协程

python进阶多进程(进程池,进程间通信)

python Event对象队列和多进程基础

PYTHON——多进程:进程间通信和数据共享

Python开发基础--- Event对象队列和多进程基础