文章首发微信公众号,微信搜索:猿说python
一.前言
1.在前一篇文章 python进程Process与线程threading区别 中讲到线程threading共享内存地址,进程与进程Peocess之间相互独立,互不影响(相当于深拷贝);
2.在线程间通信的时候可以使用Queue模块完成,进程间通信也可以通过Queue完成,但是此Queue并非线程的Queue,进程间通信Queue是将数据 pickle 后传给另一个进程的 Queue,用于父进程与子进程之间的通信或同一父进程的子进程之间通信;
使用Queue线程间通信:
#导入线程相关模块
import threading
import queue
q = queue.Queue()
使用Queue进程间通信,适用于多个进程之间通信:
# 导入进程相关模块
from multiprocessing import Process
from multiprocessing import Queue
q = Queue()
使用Pipe进程间通信,适用于两个进程之间通信(一对一):
# 导入进程相关模块
from multiprocessing import Process
from multiprocessing import Pipe
pipe = Pipe()
二.python进程间通信Queue/Pipe使用
python提供了多种进程通信的方式,主要Queue和Pipe这两种方式,Queue用于多个进程间实现通信,Pipe用于两个进程的通信;
1.使用Queue进程间通信,Queue包含两个方法:
- put():以插入数据到队列中,他还有两个可选参数:blocked和timeout。详情自行百度
- get():从队列读取并且删除一个元素。同样,他还有两个可选参数:blocked和timeout。详情自行百度