IPC(进程间通信)之管道详解

linux和windows中都有

管道和共享内存(最快的IPC)区别:

1.管道一次通信四次数据拷贝:由用户空间的buf中将数据拷贝到内核中->内核将数据拷贝到内存中->内存到内核->内核到用户空间的buf。而共享内存则只拷贝两次数据:用户空间到内存 -> 内存到用户空间。

2.管道用循环队列实现,连续传送数据可以不限大小。共享内存每次传递数据大小是固定的;

3.共享内存可以随机访问,管道只能顺序读写;

 

匿名管道

在具有公共祖先的进程之间进行通信。通信跟随进程消亡,所以是只存在于内存的临时文件由于这种文件没有文件名,不能被非亲进程所打开,只能用于亲属进程间的通信,所以这种没有名称的文件形成的通信管道叫做“匿名管道”。

 

原理:创建子进程会复制父进程包括文件在内的一些资源。如果父进程创建子进程之前创建了一个文件,那么这个文件的描述符就会被之后创建的子进程所共享,父、子进程可以通过这个文件进行通信。如果通信的双方一方只能进行读操作&

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值