注意该标题是 “进程”间通信,而并非“线程“之间的通信。

线程之间的通信是多线程的讨论范畴。这里我们是要讨论分布式的独立的JAVA程序之间是怎么通信的。当然,大家都会先想到SOCKET。对的,SOCKET在网络编程中是不可以被忽略的。socket是两台主机之间的一个连接,而JAVA中的SOCKET类为不同主机之间的连接提供了功能封装。

所以,SOCKET是进程间通信的一种常用方法。

让我们变得更原始一点,如果同一台主机不同程序之间是怎么交换数据的呢?

嗯,邮递员送信的网络知识,让我们很容易想到,把数据放到一个共享的地方就行。

A程序把数据存到硬盘的某个文件txt,然后B程序在去打开这个txt读取内容。这样子是不是很理想呢?

所以,存取文件,不失为一个通信的巧手段。

嗯,既然我们可以共享磁盘,那我们也可以共享内存,JMS的 queue 应该也可以实现通信的目的,

还有管道等概念。

讲了那么多,其实想引出来的,无非是RMI,RMI并不是最本质的东西。SOCKET是它的基础。

RMI是sun开发,遵循JRMP协议,因为他被发布在jre中,所有很多人只把它当作很普通的api来使用,所以它里面做了什么,很多人都不清楚.

RMI到底是什么?

RMI是一套足够优秀的socket框架.

RMI是相对比较简单命名服务

RMI是aop的经典实用例子

相关辅助功能,比如本地GC

总之,RMI也是一个重要的通信手段。

java web 进程通信_RMI网络编程开发之一 JAVA“进程间”通信方式相关推荐

  1. java自动化测试语言高级之网络编程

    java自动化测试语言高级之网络编程 文章目录 java自动化测试语言高级之网络编程 Java 网络编程 Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来 ...

  2. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  3. Java基础深化和提高 ---- 网络编程

    网络编程基本概念 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其 外部设备,通过通信线路连接起来,在网络操作系统,网络管理软 件及网络通信协议的管理和协调下,实现资源共享和信息 ...

  4. Java核心类库篇8——网络编程

    Java核心类库篇8--网络编程 1.七层网络模型 OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)组织在1985 年研究的网络互连模型. 当发 ...

  5. 【网络编程开发系列】好端端的MQTT-broker重新部署后居然出现TLS握手失败了

    摘要:本文通过一次真实的现网案例复盘,深度还原TLS握手问题的排查思路和方法,希望对广大读者有所启发和帮助. 文章目录 1 写在前面 2 问题描述 2.1 项目背景 2.2 现场问题 3 场景复现 3 ...

  6. Web全栈~28.网络编程

    Web全栈~28.网络编程 上一期 前言 网络编程往往都是困难.复杂,而且极易出错的.程序员必须掌握与网络有关的大量细节,有时甚至要对硬件有深刻的认识.一般地,我们需要理解网络协议中不同的" ...

  7. iOS网络编程开发—HTTP协议

    iOS网络编程开发-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  8. java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...

    20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...

  9. Java Web入门项目之“网络交友”的设计与实现

    前言:这个小项目是我刚学习JSP时,参考"JSP程序设计"这本书写的.这里之所以说参考这本书而不是照着这本书写,主要是因为我自己完成的时候删掉了不少繁琐的写法(比如:文件上传):同 ...

最新文章

  1. Linux 守护进程一
  2. mysql列目录_mysql列直接存储图片路径
  3. 不使用GACUtil.exe,如何部署和卸载程序集到GAC中
  4. 基于roslyn的动态编译库Natasha
  5. MobaXterm_Personal_20.1最简单方式链接阿里云服务器
  6. 接口测试--apipost接口断言详解
  7. selector的使用
  8. opengl 旋转矩阵和纹理坐标相乘_OpenGL-Rotating Points
  9. C++ PostMessage 模拟键盘鼠标
  10. 利用度盘直链解析网页及XDOWN高速下载百度网盘分享资源
  11. matlab直方图 | 不用imhist循环实现,imhist检验
  12. win7升级Powershell到5.1(for flutter)
  13. Andriod程序的结构
  14. 苹果也被撕下遮羞布,iPhone14后继乏力,靠十三香维持销量
  15. 知道创宇赵伟乌镇演讲:以云护云、以云治云,构建云端安全治理体系
  16. 关于差分放大器双电源改单电源问题的讨论(AD628)
  17. 独家 | 全球2000家客户,这家公司推动林肯MKZ成为最流行的自动驾驶样车
  18. java处理图片与base64编码互相转换
  19. Web应用——驾培管理系统之个人管理(作者:小圣)
  20. oracle如何根据ID恢复部分数据,三种方法找回Oracle数据库误删除的数据

热门文章

  1. 【转】Unity Scene场景自定义坐标轴
  2. 【转】汇编 代码段数据段堆区栈区
  3. beyond compare 3.10在异常关机后无法启动
  4. 全民学python(01)
  5. DML、DDL、DCL的分别是什么
  6. 各种软路由 - 自制路由器
  7. Java课程设计基于ssm的微信小程序
  8. NYOJ 420 p次方求和 大数的幂
  9. Hibernate总结1
  10. 修改Linux系统时间