进程间通信方式
一:共享存储器系统
1:基于共享数据结构
两个进程间公用某些数据结构,来实现信息交换。这种通信仅适用于传递相对少量的数据,效率低下。比如生产者消费者问题中共用的有界缓冲区。

2:基于共享存储区
在内存中划出了一块共享存储区域,两个进程可通过对区域的读或写交换信息,实现通信。数据的形式和位置甚至访问控制都是由进程负责。

二:管道通信
“管道”是一个连接读进程和写进程的共享文件。又名pipe文件。能有效传送大量数据。

三:消息传递系统
该机制,进程不必借助任何共享存储区或数据结构。用操作系统提供的通信原语,把通信的数据放在消息message中,以消息为单位,在进程间传递。

四:客户机-服务器 cs模式
1:socket套接字
socket就是一个通信标识类型的数据结构。
1.1:本地两个进程
基于文件。由本地文件系统支持。套接字关联到一个特殊的文件,类似于pipe管道。
1.2:网络中两个进程
就是我们传输层TCP协议中的那个socket。网络中两个应用通信在传输层这一层就是网络中的两个进程通信罢了。网络通信本质上就是特殊的进程通信。
2:远程函数调用——RPC
remote procedure call

stub叫存根或句柄。


其实Android上的进程通信也就是具体实现有差别而已,像什么AIDL,binder这些,理论上都是操作系统的进程通信的实现而已。

浙公网安备 33010602011771号