进程间通信方式简介

来源:互联网 发布:shopinfo.php 漏洞 编辑:程序博客网 时间:2024/06/05 03:58

本文简单介绍进程间通信方式,包含

  • 普通管道
  • 共享内存
  • 消息队列
  • 套接字

一、普通管道

普通管道(pipe):通常有两种限制,一是单工,只能单向传输;二是只能在父子或者兄弟进程间使用.
linux shell中使用的管道操作就是这种原理,例如以下命令:

$ ls | pr

该命令把命令ls(列出目录中的文件)的输出通过管道连接到命令pr的标准输入上进行分页。


二、共享内存

共享内存即由一个进程创建,系统中其它多个进程都可以访问的区域。通过对该共享内存的操作实现进程间消息的传递。


三、消息队列

消息队列,就是一个消息的链表,是一系列保存在内核中消息的列表。用户进程可以向消息队列添加消息,也可以向消息队列读取消息。

消息队列与管道通信相比,其优势是对每个消息指定特定的消息类型,接收的时候不需要按照队列次序,而是可以根据自定义条件接收特定类型的消息。

可以把消息看做一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程可以从消息队列中读取消息。

进程间通过消息队列通信,主要是:创建或打开消息队列,添加消息,读取消息和控制消息队列。


四、套接字

套接口(Socket)可用于不同机器的进程间的通信。


原创粉丝点击