同一个主机上的JVM实例之间通信

时间:2023-11-24 22:27:14

hadoop yarn里用了RPC调用。NM里面文件本地化类ContainerLocalizer用RPC心跳方式跟本机的ResourceLocalizationService通信。

用shared memory还要调到native层去,不知道会不会比tcp/ip快?

可以用文件,考虑锁的问题。但是文件貌似不能两边一起写,否则会乱的。也许弄两个文件,每个都是单工?这样还要监视文件是否发生变化。

还可以用剪切板,干扰比较严重

可以socket,socket是双工的,读写时都不用加锁防止另一边占用socket。

named pipe

rmi

memory mapped file

  你指的是MappedByteBuffer么?

    java.nio.channels.FileChannel abstract  MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)  
           将此通道的文件区域直接映射到内存中。

      锁定了还咋进程通信啊,我看了api doc,很多地方都是实现相关的,不靠谱

可以锁定某个文件区域,以阻止其他程序对其进行访问。

共享内存快,jni不会消耗什么。。

  jni本身效率就很低,还有个非常大的问题:一旦native code 发生异常会导致jvm down掉。

     jni在这里绝不会是瓶颈,几行本地代码,仔细写问题不大的 

      jni 中间走 object 注定慢 

http://www.newsmth.net/nForum/#!article/Java/170307