!. 事件驱动模型
客户端/服务器端模型
阻塞IO + 单线程(一个cpu一个线程)
浪费了cpu资源
阻塞IO + 多线程(一个cpu多个线程)
增加了额外的创建、销毁、切换线程的开销。
阻塞IO + 线程池
大量并发连接仍然效率比较低。
非阻塞IO + 单线程(一个cpu一个线程) + 事件驱动模型
recv
select
epoll
libev
过程
注册母句柄事件到"注册的句柄事件列表"
检查"注册的句柄事件列表"
检查到一个或一组事件
为每一个事件执行一个处理函数,回调函数
重新整理"注册的句柄事件列表"
检查"注册的句柄事件列表"
......
本文深入探讨了事件驱动模型在并发编程中的优势,特别是结合非阻塞IO技术如何有效提升单线程环境下的并发处理能力。通过详细解释注册句柄事件、select、epoll等关键概念,以及如何使用libev实现高效的事件处理流程,旨在为开发者提供一种高效管理并发任务的方法。
1361

被折叠的 条评论
为什么被折叠?



