Scala akka streams中异步文件IO的当前状态是什么?
目标: 我希望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”文件中,有一行: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的注释缺失,只明确提到
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
所以我想它需要Java8
与scala异步文件IO相关,但其从2015年1月起生效。包含:
Akka IO虽然在其核心中不提供文件IO,但有一个模块
由Dario Rexin开发,允许使用AsynchronousFileChannel
以非常简单的方式与Akka IO合作。请看一下这个图书馆
利用它:
问题:
java.nio.ByteBuffer
和java.nio.channels.FileChannel
。如前所述,文件IO操作在专用调度程序上独立运行
有一个open试图使用异步文件通道
。根据该PR中报告的基准测试结果,PR可能会关闭,以便尝试使用另一个PR中捕获的同步NIO的更新方法
这个问题没有意义,因为Akka Streams不使用
异步文件通道
据我所知,Java中没有非阻塞异步文件IO。NIO2扩展使用ExecutorService在上执行阻塞IO操作。