匿名管道(pipe)
- 只提供单向通信
- 只能用于具有血缘关系的进程间通信,通常用于父子进程建通信
- 管道是基于字节流来通信的
- 依赖于文件系统,它的生命周期随进程的结束而结束
- 本身自带同步互斥效果
- 存在于内存
有名管道(FIFO)
- 不受血缘关系束缚
- 存在于硬盘
- 半双工
信号量(semaphore)
- 主要作为进程间以及同一进程不同线程之间的同步手段,就像车位
信号(signal)
- 信号发送后,安装了该信号的进程执行安装的处理函数
消息队列(message queue)
- 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
共享内存(shm)
- 不同进程共享同一块内存
- 由于在内存中,速度比内存映射快
内存映射(mmap)
- 磁盘上的文件映射到进程的内存地址
- 在磁盘中,速度比共享内存慢
Socket
- 既可以本机不同进程通信,也可跨机器
共享内存、信号量、消息队列分为System V标准和Posix标准,两者有一定区别
应用层:
DBus
Binder(android特有)