参考:https://www.bilibili.com/video/BV16B4y1z73d/?spm_id_from=333.788&vd_source=94a5c81584aaaef7b7c061167cc809d2
https://blog.csdn.net/ldw201510803006/article/details/124365838
1.传统阻塞io模型
2.reactor模型
思想是io复用加线程池技术,核心是服务请求分发的事件驱动处理模式
I/O多路复用: 是非阻塞IO的一种特例,也是目前最经典、最常用的高性能IO模型。其具体处理方式是:先查询 IO 事件是否准备就绪,当 IO 事件准备就绪了,则会真正的通过系统调用实现数据读写;
查询操作,不管是否数据准备就绪都会立即返回,即非阻塞;因此,通常情况下,会通过轮训来不断监听 IO 事件是否准备就绪;因为操作是非阻塞的,这个过程中通常只需及少量线程(一般一个线程即可)来处理这个轮训操作,极大的解决阻塞模式下 IO 枯竭问题。
这种一个线程就可以监听所有网络连接的 IO 事件是否准备就绪的模式,就是大名鼎鼎的IO多路复用。