Linux进程间通信方式

匿名管道(pipe)

  • 只提供单向通信
  • 只能用于具有血缘关系的进程间通信,通常用于父子进程建通信
  • 管道是基于字节流来通信的
  • 依赖于文件系统,它的生命周期随进程的结束而结束
  • 本身自带同步互斥效果
  • 存在于内存

有名管道(FIFO)

  • 不受血缘关系束缚
  • 存在于硬盘
  • 半双工

信号量(semaphore)

  • 主要作为进程间以及同一进程不同线程之间的同步手段,就像车位

信号(signal)

  • 信号发送后,安装了该信号的进程执行安装的处理函数

消息队列(message queue)

  • 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

共享内存(shm)

  • 不同进程共享同一块内存
  • 由于在内存中,速度比内存映射快

内存映射(mmap)

  • 磁盘上的文件映射到进程的内存地址
  • 在磁盘中,速度比共享内存慢

Socket

  • 既可以本机不同进程通信,也可跨机器

共享内存、信号量、消息队列分为System V标准和Posix标准,两者有一定区别

应用层:

DBus

Binder(android特有)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值