3. 彤哥说netty系列之Java BIO NIO AIO进化史.md
你好,我是彤哥,本篇是netty系列的第三篇。 欢迎来我的公从号 彤哥读源码 系统地学习 源码&架构 的知识。 先说两个事 (1)上周五的那篇文章发重复了,是定时任务设置错误导致,给大家带来干扰,这里说声抱歉。 (2)之前的问卷调查结果出来了,认为先讲案例的票数较多,所以后面的文章都是先讲案例,再以案例展开讲解组件。 简介 上一章我们介绍了IO的五种模型,实际上Java只支持其中的三种,即BIO/NIO/AIO。 本文将介绍Java中这三种IO的进化史,并从使用的角度剖析它们背后的故事。 Java BIO BIO概念解析 BIO,Blocking IO,阻塞IO,它是Java的上古产品,自出生就有的东西(JDK 1.0)。 使用BIO则数据准备和数据从内核空间拷贝到用户空间两个阶段都是阻塞的。 BIO使用案例 public class EchoServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); while (true) { System.out.println("start accept"); Socket socket = serverSocket.accept(); System.out