注意该标题是 “进程”间通信,而并非“线程“之间的通信。
线程之间的通信是多线程的讨论范畴。这里我们是要讨论分布式的独立的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也是一个重要的通信手段。
本文出自 “JAVAWeb开发” 博客,请务必保留此出处http://6221123.blog.51cto.com/6211123/1111871