进程间的通信

来源:互联网 发布:js清除换行符 编辑:程序博客网 时间:2024/06/05 17:54

http://zh.wikipedia.org/zh-cn/行程間通訊



进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。这些进程可以运行在同一计算机上或网络连接的不同计算机上。

进程间通信技术包括消息传递、同步、共享内存和远程过程调用。IPC是一种标准的Unix通信机制。

使用IPC 的理由:

信息共享
加速;
模块化;
方便; 以及
私有权分离.


主要的 IPC 方法
方法 操作系统
文件 多数操作系统都有提供
信号 多数操作系统都有提供
Socket 多数操作系统都有提供
消息队列(en:Message queue) 多数操作系统都有提供
管道(en:Pipe) 所有的 POSIX systems, Windows.
具名管道(en:Named Pipe) 所有的 POSIX systems, Windows.
信号量(en:Semaphore) 所有的 POSIX systems, Windows.
共享存储器 所有的 POSIX systems, Windows.
Message passing(en:Message passing)
(不共享) 用于 MPI paradigm, Java RMI, CORBA, MSMQ, MailSlot 以及其他.
Memory-mapped file(en:Memory-mapped file) 所有的 POSIX systems, Windows.



实现
命名和匿名管道 Pipe
信号量 Semaphore
互斥子 Mutex
共享内存 Shared Memory
消息队列 Message Queue
文件系统
CORBA
D-Bus
Distributed Ruby
DIPC Distributed Inter-Process Communication
OpenBinder Open Binder
下列方式只适用于特定操作系统平台或特定的编程语言:

[编辑] Windows
微软Windows:

COM
COM+
DCOM
OLE
[编辑] 其他
有人认为这些也可以算是进程间通信的方式:

剪贴板 Clipboard
人本身
显示▼隐藏▲ 查 • 论 • 编进程间通信

 
Methods 文件 · Memory-mapped file · Message passing · Message queue and mailbox · 具名管道 · 匿名管道 · Pipe · Semaphore · 共享存储器 · Signal · Sockets : Internet 与 Unix domain

 
可选用的协议
与标准化 Apple events · COM+ · CORBA · D-Bus · DCE · ICE · ONC RPC · POSIX · SOAP · REST · Thrift · TIPC · XML-RPC