1 Star 0 Fork 0

huyi / TechCPP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
进程间的通信方式有那些?.md 1.96 KB
一键复制 编辑 原始数据 按行查看 历史
葛昆仑 提交于 2024-01-20 04:29 . update: 6 articles

常见:

  1. 管道 (Pipe)
    • 无名管道(匿名管道):主要用于有亲缘关系的进程之间的通信(例如,父子进程)。数据是单向流动的。
    • 命名管道(FIFO):允许无亲缘关系的进程之间通信,它在文件系统中有一个名字。
  2. 信号 (Signal):一种用于通知接收进程某个事件已经发生的简单机制。
  3. 消息队列 (Message Queue):允许一个或多个进程向另一个进程发送格式化的数据块。数据块在消息队列中按照一定的顺序排列。
  4. 共享内存 (Shared Memory):让多个进程共享一个给定的存储区,是最快的IPC方式,因为数据不需要在进程间复制。
  5. 信号量 (Semaphore):主要用于同步进程间的操作,而不是传递数据,但通过控制资源的访问,它可以作为通信的一种手段。
  6. 套接字 (Socket):提供网络通信的机制,可用于不同机器上的进程间通信,也可以在同一台机器上的进程之间进行通信。

拓展:

  1. 文件系统:进程可以通过读写文件来交换信息,虽然这不是最高效的IPC方式,但它的使用非常简单且不受平台限制。
  2. 共享文件和映射内存 (Memory-mapped file):通过将磁盘上的文件映射到进程的地址空间,多个进程可以访问文件内容,就好像它们在操作共享内存一样。
  3. 远程过程调用 (RPC):允许一个程序调用另一台计算机上的程序,就像调用本地程序一样。
  4. 消息传递接口 (MPI):常用于高性能计算中,提供了一组标准化的通信协议,用于不同进程(可能在不同的物理机器上)的通信。
  5. 本地过程调用 (LPC):在同一台计算机上运行的进程间的通信机制,通常比远程过程调用(RPC)更快。
  6. Domain Sockets:类似于网络套接字,但仅限于同一台计算机上的进程间通信,不通过网络层传输数据。
1
https://gitee.com/hylhm/TechCPP.git
git@gitee.com:hylhm/TechCPP.git
hylhm
TechCPP
TechCPP
master

搜索帮助