一 : 五种 I/O 模型
1 . 同步阻塞 io
server端起多个线程 ,每个线程处理一个 client 请求 , client等待 server 端返回
2. 同步非阻塞
每隔一段时间去请求 server 端 , 造成 cpu 资源浪费
3. I/0 多路复用
I/O 多路复用是一种机制 , 是个进程可以监视多个标志符,等到某个描述符就绪(读就绪或者写就绪),能够通知程序进行相应的读写操作。
多路复用是基于事件驱动理念 。 事件驱动模型一般是由 事件收集器、事件发送器 和 事件处理器 三部分组成基本单元组成。
详看这篇文章 :http://www.chenxm.cc/post/124.html
I/0 多路复用的使用 select , poll , epoll : http://www.chenxm.cc/post/126.html
4. 信号驱动 I/O
服务端给一个信号给客服端 , 不常用
5. 异步 I/0
client 端请求后可以处理其他事情 , server 端处理完后会返回结果
二 :BIO 、 NIO 、 AIO 区别
IO的方式通常分为几种,
同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。
详见 : https://blog.csdn.net/skiof007/article/details/52873421