Scala akka streams中异步文件IO的当前状态是什么?

Scala akka streams中异步文件IO的当前状态是什么?,scala,file-io,akka,nio,akka-stream,Scala,File Io,Akka,Nio,Akka Stream,目标: 我希望Akka的文件IO尽可能异步和无阻塞 我目前的知识状况: 在中,您可以阅读以下内容: 注 由于当前版本的Akka(2.3.x)需要支持JDK6,因此 当前提供的文件IO实现无法利用 异步文件IO操作,正如JDK7(和 更新的)。一旦Akka可以自由地要求JDK8(从2.4.x开始)这些 将更新实现以使用新的NIOAPI(即。 异步文件通道) 目前的akka版本是“2.5.4”。akka stream的当前版本为“2.11”或“2.12”。在本文中,abhove的注释缺失,只明确提到

目标:

我希望Akka的文件IO尽可能异步和无阻塞

我目前的知识状况:

在中,您可以阅读以下内容:

由于当前版本的Akka(2.3.x)需要支持JDK6,因此 当前提供的文件IO实现无法利用 异步文件IO操作,正如JDK7(和 更新的)。一旦Akka可以自由地要求JDK8(从2.4.x开始)这些 将更新实现以使用新的NIOAPI(即。 异步文件通道)

目前的akka版本是“2.5.4”。akka stream的当前版本为“2.11”或“2.12”。在本文中,abhove的注释缺失,只明确提到文件IO意味着阻塞操作,该操作由专用于IO操作的调度器处理

在akka streams Jar文件内的“MANIFEST.MF”文件中,有一行:

Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
所以我想它需要Java8

与scala异步文件IO相关,但其从2015年1月起生效。包含:

Akka IO虽然在其核心中不提供文件IO,但有一个模块 由Dario Rexin开发,允许使用AsynchronousFileChannel 以非常简单的方式与Akka IO合作。请看一下这个图书馆 利用它:

问题:

  • akka streams文件IO的当前状态有多异步
  • akka streams文件IO是否使用来自Java NIO的“AsynchronousFileChannel”
  • 我必须做些什么才能使用Java的NIO中的“AsynchronousFileChannel”吗
  • akka streams文件IO的当前状态有多异步
  • 仔细阅读说明Akka Stream的FileIO使用
    java.nio.ByteBuffer
    java.nio.channels.FileChannel
    。如前所述,文件IO操作在专用调度程序上独立运行

    有一个open试图使用
    异步文件通道
    。根据该PR中报告的基准测试结果,PR可能会关闭,以便尝试使用另一个PR中捕获的同步NIO的更新方法

  • akka streams文件IO是否使用来自Java NIO的“AsynchronousFileChannel”
  • 没有

  • 我必须做些什么才能使用Java的NIO中的“AsynchronousFileChannel”吗

  • 这个问题没有意义,因为Akka Streams不使用
    异步文件通道

    据我所知,Java中没有非阻塞异步文件IO。NIO2扩展使用ExecutorService在上执行阻塞IO操作。