更好的 Java IPC@Linux 策略:(a) /dev/shm 上的 java.nio 文件 API 或 (b) JNI 到 shmctl(2)?

Posted

技术标签:

【中文标题】更好的 Java IPC@Linux 策略:(a) /dev/shm 上的 java.nio 文件 API 或 (b) JNI 到 shmctl(2)?【英文标题】:better Java IPC@Linux tactic: (a) java.nio File API on /dev/shm or (b) JNI to shmctl(2)? 【发布时间】:2013-05-04 22:01:53 【问题描述】:

我们想要编写一个 Java 7 程序,它将作为两个独立的 JVM 进程实例启动(通过 2 个 cmd 行调用)。我们希望这两个进程使用本地 Linux 内核共享内存 IPC 资源相互通信。

有没有人知道这两种方法中哪一种更有价值?

    在 /dev/shm 上使用 java.nio.* API 使用 JNI 桥接 C++ 代码,进行本机 shmctl() 系统调用

?

【问题讨论】:

【参考方案1】:

我投票给“NIO 和 /dev/shm”。

但在做出任何最终决定之前,您还应该考虑其他选项,包括 CLIP:

http://ambientideas.com/blog/index.php/tag/java/page/2/

http://ltsllc.com/talks/20090407_ipc.pdf

inter jvm communication

套接字、消息队列和命名管道是其他 IPC 方法,我不一定会立即放弃。恕我直言...

【讨论】:

以上是关于更好的 Java IPC@Linux 策略:(a) /dev/shm 上的 java.nio 文件 API 或 (b) JNI 到 shmctl(2)?的主要内容,如果未能解决你的问题,请参考以下文章

Java设计模式--策略模式

Rails 3 UJS Ajax 模式/策略,哪个更好?

7Zip 更好的策略,通过命令行将一个文件压缩到一个 7z 文件中

IPC - Linux 中的共享编程程序

深刻理解Linux进程间通信(IPC)

JAVA设计模式之策略模式