Java中有可移植的共享内存机制吗?
在Java中,我们正在寻找一种共享内存机制来在进程之间传输大量数据,而无需复制。它必须是可移植的(包括Windows)。有这样的事吗?我们考虑使用mmap ed文件,因为它们是可移植的,但是它们的内容被写入磁盘,这是不可取的。还有其他选择吗?Java中有可移植的共享内存机制吗?,java,cross-platform,ipc,shared-memory,Java,Cross Platform,Ipc,Shared Memory,在Java中,我们正在寻找一种共享内存机制来在进程之间传输大量数据,而无需复制。它必须是可移植的(包括Windows)。有这样的事吗?我们考虑使用mmap ed文件,因为它们是可移植的,但是它们的内容被写入磁盘,这是不可取的。还有其他选择吗? 否则,Windows会有页面文件备份部分;在Java中有没有一种简单的方法来使用它们?如果我们可以在*nix和Windows上使用其他共享内存机制,我们可能就可以了。中有一些解决方案。它们支持可以同时读写的滚动队列和完全脱离堆的SharedHashMap。
否则,Windows会有页面文件备份部分;在Java中有没有一种简单的方法来使用它们?如果我们可以在*nix和Windows上使用其他共享内存机制,我们可能就可以了。中有一些解决方案。它们支持可以同时读写的滚动队列和完全脱离堆的SharedHashMap。在Linux中,您可以“写入”tmpfs文件系统,在Windows中,您可以使用Ramdrive 这些库支持通过TCP在机器之间进行复制。(Chronicle的复制已经使用了一段时间,但SharedHashMap的复制仍处于测试阶段) 虽然它可以跨操作系统移植,但它使用了OpenJDK/HotSpot JVM内部的一些功能,因此不能在IBMJVMAFAIK上工作
注意:这些库支持使用序列化形式读取和写入数据,这种序列化形式不会产生垃圾,或者使用就地的堆外数据结构。i、 你不需要反序列化整个对象来访问它的一部分。对于我来说,普通Java来说,这听起来太低级了。。。但我可能不知道Java的全部功能