【无标题】

关于在LINUX下的进程间通信学习

在Linux系统中我们总会遇到想要两个进程之间进行通信,我们该怎么去进行进程间的通信呢,在Linux下有以下几种通信方式,无名管道,有名管道,消息队列,信号,信号量,共享内存,内存映射文件,套接字等等;

1.管道(PIPE)

管道相当于是一片共享内存,一个进程创建一个管道时,被称为管道服务器,当一个进程往管道写入数据时,另一个进程就可以从管道读出来;
无名管道只能用于具有亲缘关系的进程进行通信,而有名管道可以利用与不同的进程,即使没有亲缘关系也能进行通信;

2.信号

在Linux中也有信号,信号的作用类似于中断,因为信号随时都可能会发生,无法确定它什么时候到来,它是进程间唯一的异步通信机制。
常见的信号有,按键,定时器,错误等信号;

3.信号量

信号量是用来解决进程/线程间的同步与互斥的一种通信机制(PV操作)
P相当于申请资源,V相当于释放资源

4.消息队列

消息队列主要包括:创建、打开消息队列,添加消息,读取消息,控制消息

消息队列是内核地址空间中的内部链表,通过linux内核在各个进程直接传递内容,消息顺序地发送到消息队列中,并以几种不同的方式从队列中获得,每个消息队列可以用 IPC标识符 唯一地进行识别
消息队列克服了信号承载信息量少,管道只能承载无格式字符流。

5.共享内存

共享内存的实现主要为两个步骤:1,,创建共享内存,shmget() 2,映射共享内存,把这段内存映射到具体的进程空间中 shmat();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值