Pipe 实现进程间的通信

本文介绍了Python中Pipe如何用于实现两个进程间的通信,包括send和recv方法用于发送和接收可序列化对象,以及send_bytes和recv_bytes系列方法用于发送和接收字节数据。此外,还详细阐述了close和poll函数的使用。
摘要由CSDN通过智能技术生成

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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值