
libevent
chen_song_
人终将被年少不可得之物质而困其一生
展开
-
libevent学习
一,event事件的学习//1,创建根 struct event_base *event_base_new(void);//2,创建节点 struct event event_new(struct event_base , evutil_socket_t, short,原创 2017-11-06 23:18:12 · 423 阅读 · 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 评论 -
Libevent的事件驱动源码分析(二)
前言libevent线程是不安全的, 现在服务器都是多核的如何充分使用cpu就要使用多线程。正文一, 谈谈libevent如何使用多线程呢我们在上学的时候, 经常去学校的食堂吃饭。 有几种情况1, 一个窗口排队等待打饭一个窗口就相当于我们网络中io单线程的处理, 不会出现惊群效应(linux 3.0+ epoll这个问题已经解决了) ,这个效率会比较底下, 学生排队的时间过长2, 多...原创 2019-07-04 23:22:41 · 528 阅读 · 0 评论 -
Libevent的事件驱动源码分析(三)之反应堆的设计
前言网络编程使用基本都是反应堆(reactor) 著名C++标准的Boost中asio使用reactor模式, 它的io线程是安全的, libevent使用io也使用该模式正文一, reactor模式1, 采用基于事件驱动的设计,当有事件触发时,才会调用处理器进行数据处理。Reactor:负责响应IO事件,当检测到一个新的事件,将其发送给相应的Handler去处理。Handler...原创 2019-07-06 09:41:26 · 613 阅读 · 0 评论