一、Java AIO 基本介绍

  1. JDK 7 引入了 Asynchronous I/O, 即 AIO。 在进行 I/O 编程中,常用到两种模式:Reactor和 Proactor。Java 的 NIO 就是 Reactor,当有事件触发时,服务器端得到通知, 进行相应的处理。

  2. AIO 即 NIO2.0,叫做异步不阻塞的 IO。AIO引入异步通道的概念,采用了 Proactor 模式, 简化了程序编写, 有效的请求才启动线程, 它的特点是先由操作系统完成后才通知服务端程序启动线程去处理, 一般适用于连接数较多且连接时间较长的应用。

  3. 目前 AIO 还没有广泛应用, Netty 也是基于NIO, 而不是AIO, 因此我们就不详解AIO了, 有兴趣的可以参考 <<Java新一代网络编程模型AIO原理及Linux系统AIO介绍>> http://www.52im.net/thread-306-1-1.html

二、BIO、NIO、AIO 对比表

举例说明

  1. 同步阻塞:到理发店理发,就一直等理发师,直到轮到自己理发。
  2. 同步非阻塞:到理发店理发,发现前面有其它人理发,给理发师说下, 先干其他事情,一会过来看是否轮到自己.
  3. 异步非阻塞: 给理发师打电话,让理发师上门服务,自己干其它事情,理发师自己来家给你理发

 

posted on 2022-03-16 11:46  格物致知_Tony  阅读(93)  评论(0)    收藏  举报