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

相关推荐
郝学胜-神的一滴3 分钟前
Linux命令行的核心理念与实用指南
linux·运维·服务器·开发语言·程序人生
无名客06 分钟前
SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
java·数据库·sql·sql语句优化
qq_433554548 分钟前
C++ Dijkstra堆优化算法
开发语言·c++·算法
风槐啊11 分钟前
邪修实战系列(3)
java·ide·spring boot·spring·tomcat
咋吃都不胖lyh14 分钟前
SQL数据分析原代码--创建表与简单查询
java·数据库·sql
毕设源码-朱学姐17 分钟前
【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
boonya25 分钟前
Java内存模型与线程私有共享区域与直接内存的理解
java·开发语言·内存模型
qq_1728055926 分钟前
Go 语言 PDF 生成库综合比较与实践指南
开发语言·golang·pdf
axban36 分钟前
QT M/V架构开发实战:QAbstractItemModel介绍
java·数据库·qt
UrSpecial1 小时前
Linux线程同步与互斥
linux·开发语言·c++