java - java中有真正的异步文件访问器吗?

标签 java linux asynchronous storage

我想异步读取/写入原始设备(在 Linux 中只是一个文件),我一直在使用 java.nio.channels.AsynchronousFileChannel

但它是一个“伪异步”,因为 AsynchronousFileChannel 使用线程池来执行读/写任务。它实际上是在调用操作系统提供的同步读写接口(interface)。

我真正想要的是一个真正的异步实现,它是 linux 中的 io_submit

但我无法在 jdk 或任何其他存储库(如 guava 或 apache)中找到它。

所以我的问题是:

  1. 在 java 中,是否存在基于 native io_submit 接口(interface)的异步文件访问器的现有实现?

  2. 如果没有,为什么我看不到其他需要它的人?

最佳答案

In java, is there an existing implementation of asynchronous file accessor based on the native io_submit interface

在撰写本文时(2019 年)不在默认 Java 库中。我怀疑是否有很大的热情在默认库中实现 io_submit() Java 包装器,因为:

If not, why can't I see anyone else who need it ?

急需它的人重新创建了包装器(例如参见 https://github.com/zrlio/jaio )。然而,支持 KAIO 将仅限于 Linux,因此不那么可移植(这有点违背 Java 的关键精神)。

关于java - java中有真正的异步文件访问器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126036/

相关文章:

linux - 比较两个文件并打印匹配的数据

c# - 保持 Form 实例打开的任务?

android - 飞镖 : How to return Future<void>

java - Maven 构建带有依赖项的 jar

java - 如何在新的 ActivityResult API (1.3.0-alpha05) 中获取权限请求?

java - 如何访问对象内的二维数组?

javascript - 从 JS 脚本释放浏览器内存

java - LibGDX 和 Java 8 源代码兼容性

java - 在tomcat中手动解包 war 的问题

python - 将文件夹中的文件批处理为 Python 脚本参数