Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中有可移植的共享内存机制吗?_Java_Cross Platform_Ipc_Shared Memory - Fatal编程技术网

Java中有可移植的共享内存机制吗?

Java中有可移植的共享内存机制吗?,java,cross-platform,ipc,shared-memory,Java,Cross Platform,Ipc,Shared Memory,在Java中,我们正在寻找一种共享内存机制来在进程之间传输大量数据,而无需复制。它必须是可移植的(包括Windows)。有这样的事吗?我们考虑使用mmap ed文件,因为它们是可移植的,但是它们的内容被写入磁盘,这是不可取的。还有其他选择吗? 否则,Windows会有页面文件备份部分;在Java中有没有一种简单的方法来使用它们?如果我们可以在*nix和Windows上使用其他共享内存机制,我们可能就可以了。中有一些解决方案。它们支持可以同时读写的滚动队列和完全脱离堆的SharedHashMap。

在Java中,我们正在寻找一种共享内存机制来在进程之间传输大量数据,而无需复制。它必须是可移植的(包括Windows)。有这样的事吗?我们考虑使用mmap ed文件,因为它们是可移植的,但是它们的内容被写入磁盘,这是不可取的。还有其他选择吗?
否则,Windows会有页面文件备份部分;在Java中有没有一种简单的方法来使用它们?如果我们可以在*nix和Windows上使用其他共享内存机制,我们可能就可以了。

中有一些解决方案。它们支持可以同时读写的滚动队列和完全脱离堆的SharedHashMap。在Linux中,您可以“写入”tmpfs文件系统,在Windows中,您可以使用Ramdrive

这些库支持通过TCP在机器之间进行复制。(Chronicle的复制已经使用了一段时间,但SharedHashMap的复制仍处于测试阶段)

虽然它可以跨操作系统移植,但它使用了OpenJDK/HotSpot JVM内部的一些功能,因此不能在IBMJVMAFAIK上工作


注意:这些库支持使用序列化形式读取和写入数据,这种序列化形式不会产生垃圾,或者使用就地的堆外数据结构。i、 你不需要反序列化整个对象来访问它的一部分。

对于我来说,普通Java来说,这听起来太低级了。。。但我可能不知道Java的全部功能