linux进程间通信的方式及特点

1:信号

描述: 信号是linux上的一种软中断通信机制,可以向指定进程发送通知,总共有64种信号;
特点: 信号只能作为通知使用,没办法传递数据;

2:socket套接字

描述: 一种本地计算机内部进程通信方式,需要把链接的IP地址换成 127.0.0.1 的回环地址,数据再协议栈就转发,不会经过网卡;
特点: 可以在虚拟的回环网卡上抓到数据包,会被窃听;

3:匿名管道

描述: 匿名管道是内核中的一段缓冲区,提供读写两个接口;通过fork创建子进程之后,子进程会继承父进程的管道信息;
特点: 匿名管道是单向的,需要创建两个管道才能实现 父子进程的双向收发;由于是父子进程通信,一个进程崩溃之后再运行,则无法通信(父子进程关系断开了);

4:命名管道

特点: 和匿名管道基本一致,由于是命名管道,不会限制血缘关系;只要使用对应名字,就能打开管道通信;

5:消息队列

描述: 消息队列是内核中的一个信息链表,按照消息块组织数据;
特点: 消息可以指定类型,使用一个消息队列来发送不同的类型数据,即可实现双向通信;

6:共享内存

描述: 将准备的物理内存页面,映射到进程的地址空间,实现共享内存;
特点: 能够实现大量数据通信;为了防止多个进程之间写文件冲突,需要配合信号量一起使用;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值