java中是否有真正的异步文件访问器?

时间:2018-05-02 01:36:55

标签: java linux asynchronous storage

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

但它是'假的异步',因为AsynchronousFileChannel使用线程池来执行读/写任务。它实际上是调用操作系统提供的同步读/写接口。

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

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

所以我的问题是:

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

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

1 个答案:

答案 0 :(得分:1)

  

在Java中,是否存在基于本机io_submit接口的异步文件访问器的现有实现

在撰写本文时(2019年)不在默认的Java库中。我怀疑在默认库中实现id Java包装程序的热情如何,因为:

  

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

急需此服务的人重新创建了包装器(例如,参见https://github.com/zrlio/jaio)。但是,支持KAIO只能是Linux的事情,因此不是那么可移植的(这与Java的主要思想有所抵触)。