Java8异步IO内部

Java8异步IO内部,java,asynchronous,java-8,nio,Java,Asynchronous,Java 8,Nio,我试图理解java 8中异步文件IO java.nio.AsyncFileChannel的工作原理 我的具体问题是,AsyncFileChannel是否在内部使用线程池并执行阻塞等待,还是使用系统调用让内核在IO任务完成时发出通知。我知道每个实现可能会有细微的变化,但最广泛使用的方法是什么 另外,如果我能获得nio包的设计/实现文档的参考,特别是异步IO部分,我将不胜感激 提前感谢。它使用系统调用。这是实现定义的-但它在内部使用异步io。谢谢@Benjamin。所以这意味着它使用了文件io的非阻

我试图理解java 8中异步文件IO java.nio.AsyncFileChannel的工作原理

我的具体问题是,AsyncFileChannel是否在内部使用线程池并执行阻塞等待,还是使用系统调用让内核在IO任务完成时发出通知。我知道每个实现可能会有细微的变化,但最广泛使用的方法是什么

另外,如果我能获得nio包的设计/实现文档的参考,特别是异步IO部分,我将不胜感激


提前感谢。

它使用系统调用。这是实现定义的-但它在内部使用异步io。谢谢@Benjamin。所以这意味着它使用了文件io的非阻塞方式。还有一件事情仍然没有解决,那就是为什么AsynchronousFileChannel.open路径在实例化时会创建25个线程?拥有如此大的线程池通常意味着阻塞线程。如果我的问题太天真,我道歉。非常感谢您在这方面的帮助。不,这意味着它通过系统调用使用异步“文件I/O方式”。如果有平台没有它,它就不得不用线程来伪造它。25似乎很多。@EJP非常感谢:。我证实了这一点。