转发:进程通讯使用场景

前言

经常被问到进程间通信的方式,这个可以答上来,但是问了一下各个通信方式的使用场景,就不清楚了。

这里对进程间通信(IPC,InterProcess Communication)做一个简单的记录

IPC方式

管道通信
无名管道
半双工,只能在具有公共祖先的两个进程之间使用(例如父子进程)。

有名管道(FIFO)

可以在不相关的程序之间交换数据。

FIFO其实是一种文件类型。

FIFO主要有两种用途:
· shell命令使用FIFO将数据从一条管道传送到另一条管道时,无须创建中间的临时文件。
· 客户进程-服务器进程应用程序中,FIFO用作汇聚点,在客户进程和服务器进程二者之间传递数据。

信号

信号是进程间唯一的一种异步通信方式,进程要使用异步通信那就用它。

信号只能传递简单的信息,太过复杂的无法做到。

信号量:主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。

消息队列

消息的链接表,存放在内存中,由内核维护,有消息队列标识符标志。

共享内存

允许两个或多个进程共享一个给定的存储区。

速度最快的IPC

共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取,所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量。

套接字socket

主要用在不同主机间进程的通信

参考来源
进程间七种通信方法,IPC的各种应用场景和优缺点
————————————————

原文链接:https://blog.csdn.net/WHY995987477/article/details/115573046

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值