Java NIO中的mmap

Java中的mmap使用:

java 复制代码
static private final int start = 0;
static private final int size = 1024;
static public void main(String args[]) throws Exception {
    RandomAccessFile raf = new RandomAccessFile("D:\\IO\\mmap-test.txt", "rw");
    FileChannel fc = raf.getChannel();
    MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, 
    start, size);
    mbb.put(0, (byte) 97);
    mbb.put(1023, (byte) 122);
    raf.close();
}

Java中的mmap,是通过MappedByteBuffer实现,是一种DirectBuffer,也就是说是操作系统直接管理的内存

Linux mmap原理:

可以参考知乎上的这个【轻松突破文件IO瓶颈:内存映射mmap技术】:https://zhuanlan.zhihu.com/p/64016923

相关推荐
笨笨马甲几秒前
Qt 实现三维坐标系的方法
开发语言·qt
bugcome_com10 分钟前
C# 高级集合使用示例
开发语言·c#
sycmancia14 分钟前
C++——动态内存分配、关于虚函数、关于继承中的强制类型转换
开发语言·c++
Mao_Hui16 分钟前
Unity3d实时读取Modbus RTU数据
开发语言·嵌入式硬件·unity·c#
echome88816 分钟前
Python 装饰器详解:从入门到精通的实用指南
开发语言·python
重生之后端学习22 分钟前
62. 不同路径
开发语言·数据结构·算法·leetcode·职场和发展·深度优先
冬夜戏雪25 分钟前
实习面经摘录(六)
java
把你毕设抢过来28 分钟前
基于Spring Boot的演唱会购票系统的设计与实现(源码+文档)
java·spring boot·后端
⑩-28 分钟前
Redis内存淘汰策略?如何处理大Key?
java·数据库·redis
淡泊if31 分钟前
eBPF 实战:一次诡异的 Nginx 高延迟,我用 5 分钟在内核里找到了真凶
java·运维·nginx·微服务·ebpf