之前被一个一直用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应用。
分享到:
相关推荐
java进程间通信机制.ppt
基于java的进程间异步通信系统的设计与实现.pdf
本人写了一个java进程通信的工具jar,方便大家简单的使用java进程通信。 开启守护进程,获取消息: package com.test; import org.msun.process.ProcessMonitor; import org.msun.process.ProcessMonitor....
其步骤如下:1)首先要创建一个管道文件,这一点Java 做不到,我们要借助C/C++中的mkfifo()函数来实现。} 这是查看当前目录,可以看到两个Pipe
用java编写的基于socket的进程间通信程序 客户端服务器聊天小程序
Java NIO 应用 -- 使用内存映射文件实现进程间通信
进程间通信之消息队列 ( message queue ) 消息队列是消息的链表,具有特定的格式,并由消息队列标识符标识. 七种进程间通信方式: 一.无名管道( pipe ) 二.有名管道( fifo ) 三.共享内存 ( shared memory ) 四....
java进程间通讯机制代码----RMI、共享内存、Socket、管道,等方式,每种方法我都讲了原理和例子程序,很有参考意义。在网上很难找到的。
简单的进程管道通信,非常好用,容易上手和修改,是eclipse工程文件
Over the years there have been a number of well-known efforts building on that concept, from the venerable stalwarts of CORBA and DCOM, to modern day sequels such as Java RMI, .NET Remoting, WCF, WS-...
进程间通信:Windows NamedPipes和Java应用程序
基于java的进程间异步通信系统的设计与实现 基于java的进程间异步通信系统的设计与实现 基于java的进程间异步通信系统的设计与实现
此小demo主要帮助大家了解IPC进程间通信的实现原理,希望对大家有所帮助
Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析[归纳].pdf
进程间通信涉及到客户端和服务端, 肯定有绑定服务的过程, 所以要阅读一下Android Service相关的知识, 跨进程通信的媒介aidl文件,我们也必须要了解怎么创建的,有什么规则,所以请先阅读一下Android AIDL使用这篇...
(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信 (3)信号(Signa
在Windows下基于共享内存实现进程间通信,主要通过c++编写。目前已添加jni、cshrarp支持。
二.Service Manager 成为Binder 守护进程之路 三.Server 和Client 获得Service Manager 接口之路 四.Server 启动过程源代码分析 五.Client 获得Server 远程接口过程源代码分析 六.应用程序框架层的Java 接口源...
使用linux消息队列实现进程间双向通信。本接口将消息接收封装在一个独立线程中,方便使用。
下面小编就为大家带来一篇详谈java线程与线程、进程与进程间通信。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧