- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
StandardOpenOption.SYNC 是否与 MappedByteBuffers 一起工作并节省我们调用 MappedByteBuffer.force() 的时间?
Set<OpenOption> options = new HashSet<>();
options.add(StandardOpenOption.READ);
options.add(StandardOpenOption.WRITE);
options.add(StandardOpenOption.CREATE);
options.add(StandardOpenOption.SYNC);
FileChannel channel = FileChannel.open("file.tmp", options);
MappedByteBuffer buf = channel.map(FileChannel.MapMode.READ_WRITE, 0, channel.size());
buf.putInt(500);
buf.force(); // Needed or not?
编辑:
我假设 jdk 使用 O_SYNcflags和 mmap() 调用,所以将这个问题扩展到 linux 世界:当使用 O_SYNcflags打开底层 fd 时,我们必须调用 msync() 吗?
最佳答案
我找不到文档来验证它。
在有和没有 SYNC 选项的 linux/windows 上测试,性能相似,所以我假设文件选项 SYNC/O_SYNC 不适用于 mmap/MappedByteBuffer 操作。
关于java - 当使用 StandardOpenOption.SYNC 打开底层 channel 时,我们是否必须刷新 MappedByteBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038566/
StandardOpenOption.SYNC 之间有什么区别?和 StandardOpenOption.DSYNC ? DSYNC 会导致什么样的数据丢失? DSYNC 适用于哪些用例?如果您已经决
可能是一个简单的答案,但我已经尝试阅读有关 StandardOpenOption 的 javadoc 文档,但我仍然不清楚当我说时会发生什么 Files.write(..., ..., Standar
Enum StandardOpenOption有 9 个枚举常量:APPEND、CREATE、CREATE_NEW、DELETE_ON_CLOSE、DSYNC、READ、SPARSE、SYNC、TRU
这个问题在这里已经有了答案: What does the "static" modifier after "import" mean? (8 个答案) 关闭 5 年前。 我有这个简单的 java 代
Java 7 defines this option ,但我不明白它的用处。考虑这个简单的程序,它在一台足够新的 Linux 机器上运行,带有 Java 6 JVM: public static vo
来自this oracle java教程: The OpenOptions Parameter Several of the methods in this section take an optio
这是我的代码: import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.SeekableByt
我正在尝试打开文件进行读取或创建文件(如果文件不存在)。我使用这段代码: String location = "/test1/test2/test3/"; new File(location).mkd
StandardOpenOption.SYNC 是否与 MappedByteBuffers 一起工作并节省我们调用 MappedByteBuffer.force() 的时间? Set options
我是一名优秀的程序员,十分优秀!