跳至主要內容

AIO

mozzie小于 1 分钟JavaJava

AIO

Java AIO(NIO.2) : AsynchronousI/O,异步非阻塞,采用了 Proactor 模式。服务器实现模式为一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理

AIO异步非阻塞,基于NIO的,可以称之为NIO2.0
  BIO                     NIO                                AIO        
Socket                SocketChannel                    AsynchronousSocketChannel
ServerSocket          ServerSocketChannel	       AsynchronousServerSocketChannel

当进行读写操作时,调用 API 的 read 或 write 方法,这两种方法均为异步的,完成后会主动调用回调函数:

  • 对于读操作,当有流可读取时,操作系统会将可读的流传入 read 方法的缓冲区
  • 对于写操作,当操作系统将 write 方法传递的流写入完毕时,操作系统主动通知应用程序

在 JDK1.7 中,这部分内容被称作 NIO.2,主要在 Java.nio.channels 包下增加了下面四个异步通道: AsynchronousSocketChannel、AsynchronousServerSocketChannel、AsynchronousFileChannel、AsynchronousDatagramChannel

贡献者: mozzie