从Java中的匿名/非持久内存映射文件中读取

时间:2018-01-01 08:28:08

标签: java io shared-memory memory-mapped-files mappedbytebuffer

Java通过memory-mapped files检索MappedByteBuffer支持FileChannel#map。这些文件允许多个进程共享内存,以及其他用途。

the Wikipedia article所述,有两种类型的内存映射文件:

  

持久化的

     

持久文件与磁盘上的源文件相关联。最后一个过程完成后,数据将保存到磁盘上的源文件中。这些内存映射文件适合处理非常大的源文件。

     

非持久

     

非持久文件与磁盘上的文件无关。当最后一个进程使用该文件时,数据将丢失。这些文件适用于为进程间通信(IPC)创建共享内存。

通过FileChannel#map可以轻松获取持久内存映射文件。但是,不能以这种方式获取非持久(匿名)文件。例如,在Python中,使用mmap,可以将-1作为文件号和唯一标记名称(在Windows中)传递,以获取匿名内存映射文件的段。

  1. 是否可以从Java中的匿名/非持久内存映射文件中读取?

  2. 如果是这样,是否可以(在Windows中)指定标签名称来映射匿名文件数据?

0 个答案:

没有答案