io模型主要分为四类

1 同步阻塞型io模型(bio:Block IO)

2 同步非阻塞型io(nio:Non-blocking IO)

注意:这里是io模型不是Java里面的nio,不要混为一谈

3 io多路复用型 (IO Multiplexing)

当前大部分服务器使用的这种模型(如 select/poll/epoll),Java的NIO(new IO)技术,使用的就是IO多路复用模型。在linux系统上,使用的是epoll系统调用。 

java nio就是使用的这种模型

4 异步非阻塞型io(aio:asynchronous io)

异步IO模型缺点:

需要完成事件的注册与传递,这里边需要底层操作系统提供大量的支持,去做大量的工作。

目前来说, Windows 系统下通过 IOCP 实现了真正的异步 I/O。但是,就目前的业界形式来说,Windows 系统,很少作为百万级以上或者说高并发应用的服务器操作系统来使用。

而在 Linux 系统下,异步IO模型在2.6版本才引入,目前并不完善。所以,这也是在 Linux 下,实现高并发网络编程时都是以 IO 复用模型模式为主