进程间的通信方式(IPC)

来源:互联网 发布:南京万博软件 编辑:程序博客网 时间:2024/05/01 09:23
  1. 共享内存 可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存
    空间,不同进程可以及时看到对方进程中对共享内存中数据得更新。这种方式 需要依靠某种同步操作,如互斥锁和信号量等。

  2. 消息队列
    “消息队列”是在消息的传输过程中保存消息的容器。具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可 以从消息队列中读取信息。消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

  3. 信号
    信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

  4. 信号量
    信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因 此,主要作为进程间以及同一进程内不同线程之间的同步手段。

  5. 套接字
    这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程 间通信,应用非常广泛。

  6. 无名管道
    普通管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有 父子关系的进程间使用。

  7. 有名管道
    有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

  8. 高级管道通信
    高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。

原创粉丝点击