
libevent源码探秘
学习libevent中事件驱动
chen_song_
人终将被年少不可得之物质而困其一生
展开
-
Libevent的事件驱动源码分析(三)之反应堆的设计
前言 网络编程使用基本都是反应堆(reactor) 著名C++标准的Boost中asio使用reactor模式, 它的io线程是安全的, libevent使用io也使用该模式 正文 一, reactor模式 1, 采用基于事件驱动的设计,当有事件触发时,才会调用处理器进行数据处理。 Reactor:负责响应IO事件,当检测到一个新的事件,将其发送给相应的Handler去处理。 Handler...原创 2019-07-06 09:41:26 · 613 阅读 · 0 评论 -
Libevent的事件驱动源码分析(二)
前言 libevent线程是不安全的, 现在服务器都是多核的如何充分使用cpu就要使用多线程。 正文 一, 谈谈libevent如何使用多线程呢 我们在上学的时候, 经常去学校的食堂吃饭。 有几种情况 1, 一个窗口排队等待打饭 一个窗口就相当于我们网络中io单线程的处理, 不会出现惊群效应(linux 3.0+ epoll这个问题已经解决了) ,这个效率会比较底下, 学生排队的时间过长 2, 多...原创 2019-07-04 23:22:41 · 528 阅读 · 0 评论 -
Libevent的事件驱动源码分析(一)
前言 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue ...原创 2019-07-01 23:41:14 · 954 阅读 · 0 评论