进程管道

管道:
基于socket 和pickle实现的
管道是队列的底层
数据不安全
源码对管道的解释:

The Pipe() function returns a pair of connection objects connected by a pipe which by default is duplex (two-way)
该函数返回一对连接用管道的默认两端的特征
 Each connection object has ***send()*** and ***recv()*** methods
 管道可以分为双工管道和单向管道。管道也是用队列的原理实现的。双工就是两边都可以存取信息。

管道也可以实现进程间的通信。但是进程间数据不安全。且存取数据复杂,
队列是基于管道实现的。管道是基于socket实现的。队列是管道的一种升级,基于管道中很多弊端形成了队列。
队列在进程中数据是安全的。因为两个队列不会同时取队列中的一个数据。也不会往同一个地方放数据。队列会严格的维持持续,不会有不安全的情况发送。
管道在进程之间数据不安全的。虽然管道也能实现IPC通信, 队列是管道加锁实现的,就是因为每次取数据和放数据时都添加了锁。所以永远不可能有两个进程同时修改一个队列了,

例1:
管道对象返回值

from multiprocessing import Pipe,Process
pipe = Pipe()
print(pipe)

运行结果

(<multiprocessing.connection.PipeConnection object at 0x0000019B2245A4E0>, <multiprocessing.connection.PipeConnection object at 0x0000019B2245A2E8>)    # 结果是管道的两端地址。可以元祖第一个收,第二个发

在一个进程中收发

from multiprocessing import Pipe
left, right =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值