我一直在阅读有关内存映射文件的内容,我有几个问题:
答案 0 :(得分:3)
内存映射文件的确切实现是故意未指定的,但显而易见的意图是,如果操作系统提供此类功能,则用于实现它。
因此,对于大多数操作系统和JVM,MappedByteBuffer
只是操作系统内存映射函数返回的逻辑内存的包装。它仍然需要进行垃圾收集;如果收集了指向映射区域的最后一个前端字节缓冲区,则实现将注意释放映射。
如果操作系统通过同一物理内存页面提供对文件区域的共享访问,则内存映射文件的典型Java实现将表现出该行为。这实际上是在Java中进程之间实现共享内存的最直接方式;让每个进程映射同一个临时文件的同一区域......