进程间通信的经典实现

广义的讲,进程间通信(Inter-process communication,IPC)是指运行在不同进程中的若干线程间的数据交换。

1.共享内存(Shared Memory)

共享内存由于两个进程可以直接共享访问同一块区域,减少了数据的复制操作,因而速度上的的优势比较明显。

2.管道(Pipe)

管道是单向的,意味着一个进程如果既要“读”也要“写”的话,那么就得建立两根管道。
管道有容量的限制。即当pipe满时,写操作将阻塞;反之,读操作也会被阻塞。

3.Unix Domain Socket

Network Socket多用于网络通信领域,单机内通信效率不尽如人意。
UDS是专门针对单机内进程间通信提出来的。Network Socket是以TCP/IP协议栈为基础的,需要分包、重组等一系列操作。而UDS因为是本机内的“安全可靠操作”,实现机制上并不依赖于这些协议。

4.RPC(Remote Procedure Calls)

远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。

你可能感兴趣的:(进程间通信的经典实现)