管道通信

在了解管道之前,至少我们要了解的进程的概念。
而管道就是用于进程间通信的一种方式。先说结论:

所谓管道,是指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件

我们需要了解一下以下几个概念
①共享存储
是在通信的进程之间存在一块可直接访问的共享空间,如下图,也就是说,通信双方的两个进程都可以访问这块空间
在这里插入图片描述
②消息传递
我们这里说的是基于间接通信方式的消息传递(邮件),就是也就是发送进程把消息发送到某个中间实体,接收进程再从中间实体取得信息。

管道通信

了解了上面两个基本概念,我们再说管道通信。其实所谓的管道通信就是将上述两种原理结合,以Linux管道为例

我们知道,Linux下一切皆文件,所以本质上看管道也是一种文件,但又有所不同,就像是一块固定大小的缓冲区。
管道通信的过程就是:写进程将消息写入管道,读进程在将消息读出来,完成通信。

前面说了,既然管道是固定大小,那就有写满或取空的时候,当管道变满时,写进程将会被阻塞不能再写,当管道取空时,读进程不能再读;
另外注意,①从管道读数据是一次性的操作,数据一旦被读取,就被管道所抛弃,释放空间。
②管道只能采用半双工通信,即某一时刻只能单向传输,要实现双方进程互动,则需要我们说的定义两个管道。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值