NIO系列-00-4种IO对比

声明

该系列文章由书籍《Netty权威指南》第二版整理而来。只为记录学习笔记。
若认为内容侵权请及时通知本人删除相关内容。

[TOC]

说明

有关 BIO、NIO、AIO的理解,请看这两位仁兄的文章:
也谈BIO | NIO | AIO (Java版--转)
JAVA 中BIO,NIO,AIO的理解

另外,这里指的 "伪异步IO"指的是用了线程池的BIO模型

四种IO的对比

对比项 同步阻塞(BIO) 伪异步I/O 非阻塞(NIO) 异步(AIO)
客户端个数(I/O)线程 1:1 S:C,S可以大于C S:1,一个IO线程可以处理多个客户端连接 M:0 无需启动额外的线程,被动回调
I/O类型(阻塞) 阻塞 阻塞 非阻塞 非阻塞
I/O类型(同步) 同步 同步 同步 异步
API使用难度 简单 较简单 非常复杂 复杂且非常繁琐
调试难度 简单 简单 复杂 复杂
可靠性 非常差
吞吐量 非常低

后续文章

后面会以时间服务器为例,分别使用以上4中IO模型来实现。

NIO系列-01-传统BIO
NIO系列-02-升级版BIO
NIO系列-03-NIO
NIO系列-04-AIO

参考资料: 《Netty权威指南》第二版

你可能感兴趣的:(NIO系列-00-4种IO对比)