`

事件驱动模型

 
阅读更多

!. 事件驱动模型

 

客户端/服务器端模型

阻塞IO + 单线程(一个cpu一个线程)

浪费了cpu资源

阻塞IO + 多线程(一个cpu多个线程)

增加了额外的创建、销毁、切换线程的开销。

阻塞IO + 线程池

大量并发连接仍然效率比较低。

非阻塞IO + 单线程(一个cpu一个线程) + 事件驱动模型

recv

select

epoll

libev

过程

注册母句柄事件到"注册的句柄事件列表"

检查"注册的句柄事件列表"

检查到一个或一组事件

为每一个事件执行一个处理函数,回调函数

重新整理"注册的句柄事件列表"

检查"注册的句柄事件列表"

......

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics