首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

libevent(一)

Libevent 是一个基于事件通知机制的网络库,用来开发可扩展性的网络服务器。 Libevent提供了一种机制,可以在指定事件发生于某文件描述符或者一个超时事件到达的时候执行一个回调函数。...进一步,Libevent也支持信号触发的回调。Libevent用来替换目前的基于事件驱动的网络服务器中的事件循环。...内部事件机制完全独立于暴露的外部接口,因此当Libevent需要更新时,不需要重新设计外部应用程序。因此,Libevent提供了跨平台的开发能力。Libevent支持多线程程序。...Libevent可以在Linux, *BSD, Mac OS X, Solaris and, Windows编译。...每个使用Libevent的程序必须包含,传递-levent给链接器。 在你调用Libevent的函数前,你需要安装这个库。

43320
您找到你想要的搜索结果了吗?
是的
没有找到

libevent源码深度剖析十三 libevent信号处理注意点

系列目录 (1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使用场景和事件流程 (4)libevent...源码深度剖析四 libevent源代码文件组织 (5)libevent源码深度剖析五 libevent的核心:事件event (6)libevent源码深度剖析六 初见事件处理框架 (7)libevent...libevent 实现多线程的方法,然而在多线程的环境中注册信号事件,还是有一些情况需要小心处理,那就是不能在多个 libevent 实例上注册信号事件。...1 首先是创建并初始化线程 1 的 libevent 实例 base1 ,线程 1 的 libevent 实例 base2 ; 2 在 base1 上注册 SIGALRM 信号;在 base2 上注册...中,如果需要处理信号,只能将信号注册到一个 libevent 实例上。

63810

libevent源码深度剖析(五) libevent的核心:事件event

系列目录 (1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使用场景和事件流程 (4)libevent...源码深度剖析四 libevent源代码文件组织 (5)libevent源码深度剖析五 libevent的核心:事件event (6)libevent源码深度剖析六 初见事件处理框架 (7)libevent...)libevent源码深度剖析十一 时间管理 (12)libevent源码深度剖析十二 让libevent支持多线程 (13)libevent源码深度剖析十三 libevent信号处理注意点 对事件处理流程有了高层的认识后...; ev_base该事件所属的反应堆实例,这是一个event_base结构体,下一节将会详细讲解; ev_fd,对于I/O事件,是绑定的文件描述符;对于signal事件,是绑定的信号; ev_callback...实例,则必须要调用该函数为event设置不同的event_base; 1int event_priority_set(struct event *ev, int pri) 设置event ev的优先级,

1.1K30

libevent源码深度剖析十二 让libevent支持多线程

系列目录 (1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使用场景和事件流程 (4)libevent...源码深度剖析四 libevent源代码文件组织 (5)libevent源码深度剖析五 libevent的核心:事件event (6)libevent源码深度剖析六 初见事件处理框架 (7)libevent...源码深度剖析七 事件主循环 (8)libevent源码深度剖析八 集成信号处理 (9)libevent源码深度剖析九 集成定时器事件 (10)libevent源码深度剖析十 支持I/O多路复用技术 (11...)libevent源码深度剖析十一 时间管理 (12)libevent源码深度剖析十二 让libevent支持多线程 (13)libevent源码深度剖析十三 libevent信号处理注意点 libevent...4.小节 本节更是libevent的使用方面的技巧,讨论了一下如何让libevent支持多线程,以及几种支持多线程的机制,和memcached使用libevent的多线程模型。

1.7K21

libevent源码深度剖析四 libevent源代码文件组织

系列目录 (1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使用场景和事件流程 (4)libevent...源码深度剖析四 libevent源代码文件组织 (5)libevent源码深度剖析五 libevent的核心:事件event (6)libevent源码深度剖析六 初见事件处理框架 (7)libevent...源码深度剖析七 事件主循环 (8)libevent源码深度剖析八 集成信号处理 (9)libevent源码深度剖析九 集成定时器事件 (10)libevent源码深度剖析十 支持I/O多路复用技术 (11...)libevent源码深度剖析十一 时间管理 (12)libevent源码深度剖析十二 让libevent支持多线程 (13)libevent源码深度剖析十三 libevent信号处理注意点 1.前言...是libevent基本数据结构的实现,包括链表,双向链表,队列等;_libevent_time.h:一些用于时间操作的结构体定义、函数和宏定义; 11)实用网络库 http和evdns:是基于libevent

91320

libevent源码深度剖析三 libevent基本使用场景和事件流程

系列目录 (1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使用场景和事件流程 (4)libevent...源码深度剖析四 libevent源代码文件组织 (5)libevent源码深度剖析五 libevent的核心:事件event (6)libevent源码深度剖析六 初见事件处理框架 (7)libevent...1)首先初始化libevent库,并保存返回的指针 struct event_base * base = event_init(); 实际上这一步相当于初始化一个Reactor实例;在初始化libevent...要注册到哪个event_base实例上; 4)是正式的添加事件的时候了 event_add(&ev, timeout); 基本信息都已设置完成,只要简单的调用event_add()函数即可完成,其中timeout...5)程序进入无限循环,等待就绪事件并执行事件处理 event_base_dispatch(base); 3.实例代码 上面例子的程序代码如下所示 1struct event ev; 2struct

1.8K10

简单对比 Libevent、libev、libuv

Libevent、libev、libuv三个网络库,都是c语言实现的异步事件库Asynchronousevent library)。...对比下三个库: libevent :名气最大,应用最广泛,历史悠久的跨平台事件库; libev :较libevent而言,设计更简练,性能更好,但对Windows支持不够好; libuv :开发node...可见,目前libuv的影响力最大,其次是libevent,libev关注的人较少。...,各类事件默认的优先级是相同的, 可以通 过设置事件的优先级 使其优先被处理 线程安全 event_base和loop都不是线程安全的,一个event_base或loop实例只能在用户的一个线程内访问...libevent有一个socket handle, 在windows上使用IOCP进行读写。libev没有类似的。但是libevent的IOCP支持也不是很好(性能不高)。

3K10

libevent源码深度剖析一 序

系列目录 (1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使用场景和事件流程 (4)libevent...源码深度剖析四 libevent源代码文件组织 (5)libevent源码深度剖析五 libevent的核心:事件event (6)libevent源码深度剖析六 初见事件处理框架 (7)libevent...源码深度剖析七 事件主循环 (8)libevent源码深度剖析八 集成信号处理 (9)libevent源码深度剖析九 集成定时器事件 (10)libevent源码深度剖析十 支持I/O多路复用技术 (11...)libevent源码深度剖析十一 时间管理 (12)libevent源码深度剖析十二 让libevent支持多线程 (13)libevent源码深度剖析十三 libevent信号处理注意点 1.前言...参考资料: libevent官方地址: http://monkey.org/~provos/libevent/

2.2K31

libevent 中使用 MariaDB(MySQL)

不过实际适配中,官方也提供了一个完整适配 libevent 的示例代码。本文算是对我上述示例代码的阅读笔记吧。 阅读本文之前,作者假设读者已经有了 libevent 的相关知识。...如果没有的话,可以参见我的系列文章: Libevent官方文档学习笔记(1. libevent_core部分) Libevent官方文档学习笔记(2. bufferevent部分) Libevent官方文档学习笔记...(libevent_what)); // _libevent_to_mysql_status 转换函数 static int _libevent_to_mysql_status(short event...该 int 变量是一个位掩码变量,与 libevent 事件回调函数中的 short what 变量的位掩码一一对应(参见上文 _libevent_to_mysql_status() 函数,等同于官方...在前文 _libevent_to_mysql_status() 函数中已经体现了,对应关系如下: 类型 含义 MySQL 值或类型 libevent

2.4K50
领券