Java通过检索的 via支持内存映射文件。这些文件允许多个进程共享内存,以及其他用途。MappedByteBuffer
FileChannel#map
如Wikipedia 文章中所述,有两种类型的内存映射文件:
坚持
持久文件与磁盘上的源文件相关联。最后一个过程完成后,数据将保存到磁盘上的源文件中。这些内存映射文件适用于处理非常大的源文件。
非持久化
非持久文件不与磁盘上的文件相关联。当最后一个进程完成对文件的处理时,数据将丢失。这些文件适用于为进程间通信 (IPC) 创建共享内存。
持久化内存映射文件很容易通过FileChannel#map
. 但是,无法以这种方式获取非持久(匿名)文件。例如,在 Python 中,使用mmap
,可以-1
作为文件编号和唯一标记名称(在 Windows 中)传递,以获取匿名内存映射文件的段。
是否可以从 Java 中的匿名/非持久内存映射文件中读取?
如果是这样,是否可以(在 Windows 中)指定标记名称来映射匿名文件数据?