linux 进程间通讯方式


管道:编程

  它包括无名管道和有名管道两种,前者用于父进程和子进程间的通讯,后者用于运行于同一台机器上的任意两个进程间的通讯
消息队列:socket

  用于运行于同一台机器上的进程间通讯,它和管道很类似,是一个在系统内核中用来保存消息的队列,它在系统内核中是以消息链表的形式出现。消息链表中节点的结构用msg声明。
共享内存:函数

  共享内存是运行在同一台机器上的进程间通讯最快的方式,由于数据不须要在不一样的进程间复制。一般由一个进程建立一块共享内存区,其他进程对这块内存区进行 读写。
获得共享内存有两种方式:映射/dev/mem设备和内存映像文件。 前一种方式不给系统带来额外的开销,但在现实中并不经常使用,因 为它控制存取的将是 实际的物理内存,在Linux系统下,这只有限制Linux系统存取的内存才能够作到,这固然不太实际。经常使用的方式是经过shmXXX函数族来实现利 用共享内存进行存储的。
信号量:操作系统

  信号量又称为信号灯,它是用来协调不一样进程间的数据对象的,而最主要的应用是前一节的共享内存方式的进程间通讯。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取情况。
套接口(socket)编程:对象

  是实现Linux系统和其余大多数操做系统中进程间通讯的主要方式之一。咱们熟知的WWW服务、FTP服务、TELNET服务 等都是基于套接口编程来实现的。除了在异地的计算机进程间之外,套接口一样适用于本地同一台计算机内部的进程间通讯接口

相关文章
相关标签/搜索