第四章 总结
| 属性\模型 | 阻塞BIO | 非阻塞NIO | 异步AIO | 
|---|---|---|---|
| blocking | 阻塞并同步 | 非阻塞但同步 | 非阻塞并异步 | 
| 线程数(server:client) | 1:1 | 1:N | 0:N | 
| 复杂度 | 简单 | 较复杂 | 复杂 | 
| 吞吐量 | 低 | 高 | 高 | 
BIO(同步阻塞IO):在进行处理的时候是通过一个线程进行操作,并且IO实现通讯的时候采用的是阻塞模式;你现在通过水壶烧水,在BIO的世界里面,烧水这一过程你需要从头一直监视到结尾。
NIO(同步非阻塞IO):不断的进行烧水状态的判断,同时你可以做其他的事情。
AIO(异步非阻塞IO):烧水的过程你不用关注,如果水一旦烧好了,就会给你一个反馈。
最后,我们用一张图总结BIO、NIO、AIO的工作模式。

- 针对上图更多解释可参考https://www.jianshu.com/p/8ad464ed516e(强烈推荐)
博主GitHub源码
https://github.com/HengYk/BNADemo
厚颜无耻求Star
参考资料(致谢)
Java NIO系列教程推荐
http://tutorials.jenkov.com/java-nio/asynchronousfilechannel.html
https://www.jianshu.com/p/465ecd909f8c(译)

 
      
      