Pipe 直译过来的意思是“管”或“管道”,该种实现多进程编程的方式,和实际生活中的管(管道)是非常类似的。通常情况下,管道有 2 个口,而 Pipe 也常用来实现 2 个进程之间的通信,这 2 个进程分别位于管道的两端,一端用来发送数据,另一端用来接收数据。
1、send(obj)
发送一个 obj 给管道的另一端,另一端使用 recv() 方法接收。需要说明的是,该 obj 必须是可序列化的,如果该对象序列化之后超过 32MB,则很可能会引发 ValueError 异常。
2、recv()
接收另一端通过 send() 方法发送过来的数据
3、close()
关闭连接
4、poll([timeout])
返回连接中是否还有数据可以读取
5、send_bytes(buffer[, offset[, size]])
发送字节数据。如果没有指定 offset、size 参数,则默认发送 buffer 字节串的全部数据;如果指定了 offset 和size 参数,则只发送 buffer 字节串中从 offset 开始、长度为 size的字节数据。通过该方法发送的数据,应该使用recv_bytes() 或 recv_bytes_into 方法接收。
6、recv_bytes([maxlength])
接收通过 send_bytes() 方法发送的数据,maxlength 指定最多接收的字节数。该方法返回接收到的字节数据
7、recv_bytes_into(buffer[, offset])
功能与 recv_bytes() 方法类似,只是该方法将接收到的数据放在 buffer 中
导入模块
import time
from multiprocessing import Process,Pipe
import os
负责写的进程
class WriteProcess(Process):
def __init__(self