跨进程通信随想0623

作者: 红尾黄花鱼 | 来源:发表于2016-06-23 16:15 被阅读38次

在操作系统还没有虚拟内存空间的年代,每个进程都是访问物理内存,进程间通信最为简单,约定好内存地址就行了,比如说进程A,从0x23开始,连续放100个字节的数据,进程B从物理内存中将这份数据拷贝走即可。

不过这种操作系统现在我们用不着了,现在每个进程的内存空间都是虚拟的,互不相干的。接下来最好理解的就是通过硬盘文件来进行通信。进程A在C盘根目录产生一个a.txt文件,进程B将文件打开,将内容读取出来即可。

其实,也不是非要一个硬盘中文件,也可以是一个操作系统的文件句柄,传递的内容不必真的放在硬盘中,比如说windows的内存共享机制,unix的通道机制,不过这些机制现在的普通码农可能早就不关心了。

采用文件来传递信息,在很多严肃的系统间,还是唯一能被双方接收的方案。A公司和B公司合作,A公司为B公司提供重要数据。最靠谱的做法就是A公司启用一个FTP服务器,将数据生成文件,将FTP访问权限开发给B公司。B公司定时将文件取走。别看这样老土,但是仔细想想,这是最容易责任倒查的方式,某种程度上,白纸黑字无可抵赖,谁对谁错一目了然。

接下来要讲的就是通过TCP来跨进程通信,不管什么高大上的Web Service,本质上就是通过TCP来通信。两个进程间建立网络连接就可以互相发信息,至于信息格式,如何解析如何组包,这都是细节层面的东西,本文不想去细说。

到了现在,各种成熟的跨进程通信的方案,基本上都是走网络连接了。各种方案基本功能都没有问题,难就难在一些高级特性能否支持,比如说能不能将通信内容持久化(保留一段时间,方便定位故障和责任倒查),对通信内容进行可以方便的查询和过滤,通信的双方支持透明的集群和冗余等等。

相关文章

  • 跨进程通信随想0623

    在操作系统还没有虚拟内存空间的年代,每个进程都是访问物理内存,进程间通信最为简单,约定好内存地址就行了,比如说进程...

  • Android通信v2.0

    跨网络通信 Socket本地通信,进程从zygote进程fork的指令都是用socket本地通信的 跨应用/进程通...

  • windows 匿名管道

    1、匿名管道是进程间通信的一种技术。windows提供的匿名管道技术,不能够跨网络跨机器,只能在同一机器上不同进程...

  • linux进程间通信(1)

    一、进程通信概述 1、什么是进程间通信?什么是线程间通信? 进程间通信: 进程间通信就指的是用户空间中进程A与进程...

  • IPC机制

    一、IPC简介 (1)IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨...

  • 调起其他APP的Activity或Service组件的注意点

    最近在参考《Android开发艺术探索》学习跨进程通信,在写一个使用Messenger跨APP通信的小实例时,在调...

  • 操作系统拾遗--进程同步、互斥

    进程通信 进程通信--进程之间的信息交换,如同步、互斥。 进程通信分为: 低级通信方式:同步与互斥 高级通信方式:...

  • Android进程间通信(IPC机制)

    一.IPC简介 1.IPC:是Inter-Process Communication的缩写,含义为进程间通信或者跨...

  • 8-electron 主进程与渲染进程之间的通信(同步通信、异步

    electron 主进程与渲染进程之间的通信(同步通信、异步通信) electron 主进程和渲染进程通信 ele...

  • 第二章 进程的描述与控制5

    2.6 进程通信 1、进程通信是指进程之间的信息交换。 2、进程通信分为: 1)低级通信——进程之间的互斥和同步 ...

网友评论

    本文标题:跨进程通信随想0623

    本文链接:https://www.haomeiwen.com/subject/wntodttx.html