!. 事件驱动模型
客户端/服务器端模型
阻塞IO + 单线程(一个cpu一个线程)
浪费了cpu资源
阻塞IO + 多线程(一个cpu多个线程)
增加了额外的创建、销毁、切换线程的开销。
阻塞IO + 线程池
大量并发连接仍然效率比较低。
非阻塞IO + 单线程(一个cpu一个线程) + 事件驱动模型
recv
select
epoll
libev
过程
注册母句柄事件到"注册的句柄事件列表"
检查"注册的句柄事件列表"
检查到一个或一组事件
为每一个事件执行一个处理函数,回调函数
重新整理"注册的句柄事件列表"
检查"注册的句柄事件列表"
......