进程间的通讯方式

来源:互联网 发布:vb建立数据库 编辑:程序博客网 时间:2024/06/06 00:01

学习笔记

进程间的通讯方式:

说明:首先说明,为什么会有进程间的通讯,在最早的时候,进程间是没有通讯的,比如你创建两个程序A,B,A和B都要有画图的功能,在以前,你就必须在A和B中分别创建画图的功能,后来有了进程间的通讯,你就可以只在程序A中创建画图功能,如果B中要调用的话,直接和A通讯,把数据传送给A调用他的画图功能就可以了。
还有一个原因是,由于进程是最小的资源分配单元,也就是说,在内存中,每个进程都会被单独分配一段地址空间使用,程序A是访问不了程序B的地址空间的。

  • 本地进程间的通讯方式
    1,管道(pipeline):也称作匿名管道,半双工的通讯方式,就是说,不同发送和接受同时进行,而且,这种通讯方式只能在父子进程间通讯;
    2,命名管道(Named pipeline):还是半双工的通讯方式,只不过有了命名,就不限制只能在父子进程间通讯;
    3,共享内存:由一个进程创建,可以由其他进程访问的内存,是最快的IPC(Inter-Process communication)方式;

    如果你要调用另一台机器上的进程功能,怎么办?这就引出了远程调用的概念;
    远程调用,现在主要有RPC和web service 方式,

    • RPC(Remote Procedure Call):远程过程调用,优点是:跨语言,跨平台,缺点:不支持对象概念,传送的信息以外部数据表示(External Data Representation)。
    • RMI(Remote Method Invoke):远程方法调用,优点:支持对象概念,可以返回对象或者基本数据类型,缺点:只支持java语言,所以可以称RMI是面向对象的RPC;
    • web service:基于web容器,底层采用http,数据采用xml格式,采用SOAP封装格式,WSDL描述方式。
0 0