首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java IO线程安全

Java IO线程安全
EN

Stack Overflow用户
提问于 2013-06-11 08:26:17
回答 1查看 778关注 0票数 1

我使用MappedByteBuffers通过易失性变量(写入器更新位置,读取器读取写入器位置)来实现文件的读取器和写入器之间的线程安全(这是一个文件上传系统,传入的文件是一个流,如果这很重要的话)。显然,还有更多的技巧(稀疏文件,两个映射增长的能力),但这一切都归结于此。

我找不到一种更快的方法来写入文件,同时同时读取相同的文件,而不将它们完全缓存在内存中(由于切变大小,我无法做到这一点)。

有没有其他的IO方法可以保证同一进程中读写字节的可见性?MappedByteBuffer通过Java Memory Model间接地提供了保证,我希望任何其他解决方案都能做到这一点(请阅读:不特定于平台等)。

这是最快的方法吗?我是不是在文档里漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 08:30:33

几年前,我在当时还不错的硬件上做了一些测试,MappedByteBuffer比任何其他I/O技术都快大约20%。对于编写来说,它确实有一个缺点,那就是你需要事先知道文件的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17034844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档