JAVA进程间通信

本文探讨了JAVA中实现进程间通信的方法,包括传统的管道、命名管道等机制,并指出这些方式在JAVA中的适用性。特别讨论了共享内存机制下Java NIO的内存映射文件的应用。

        之前被一个一直用C/C++的朋友问JAVA是怎么实现进程间通信的,一时语塞。第一反应是多线程的东西,可以传递共享变量之类,然而多进程的还真没有考虑过。

        初步想来,使用在不同机器上的进程通信一般就是RMI、PRC和Web Service之类,也就是底层基于Socket的通信方式。上网查了一下,传统的进程间通信的方式有大致如下几种:

(1)   管道(PIPE)
(2)   命名管道(FIFO)
(3)   信号灯(Semphore)
(4)   消息队列(MessageQueue)
(5)   共享内存(SharedMemory)
(6)   Socket

        由于上面几种通信方式,除了Socket之外,大都是需要靠系统调用来实现的,因此基于JAVA虚拟机运行的JAVA进程貌似都不太好用。说道共享内存,这里查到了一篇关于JAVA NIO 的内存映射文件(MappedByteBuffer)的文章,来自javaeye:Java NIO应用

        牢骚一句,感觉javaeye博客上的代码比cnblogs上的要好看很多。。。希望博客园改进啊~

转载于:https://www.cnblogs.com/funnydavid/archive/2010/11/12/1875482.html

Java进程间通信可以通过多种方式实现。其中一种常用的方式是使用Java的RMI(远程方法调用)机制。RMI是一种用于实现远程过程调用(RPC)的Java API,它能够直接传输序列化后的Java对象和支持分布式垃圾收集。RMI的实现依赖于Java虚拟机(JVM),因此它只支持从一个JVM到另一个JVM的调用,可以看作是RPC的Java版本。\[2\] 除了RMI,还有其他一些进程间通信的方式,包括数据传输、资源共享、通知事件和进程控制。数据传输是指一个进程需要将它的数据发送给另一个进程;资源共享是指多个进程之间共享同样的资源;通知事件是指一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件;进程控制是指有些进程希望完全控制另一个进程的执行,例如Debug进程,控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。这些方式可以根据具体的需求选择合适的方式来实现进程间通信。\[3\] #### 引用[.reference_title] - *1* [Java进程通信](https://blog.youkuaiyun.com/kking_edc/article/details/108338473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java通信方式总结](https://blog.youkuaiyun.com/qq_38233258/article/details/123615724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值