libevent的初步认识
来源:互联网 发布:网络水晶头哪个牌子好 编辑:程序博客网 时间:2024/06/03 14:04
最近两天来回路上,简单地过了下《LibEvent参考手册中文版》,了解了libevent的几个概念,打算先记录下来,随着libevent使用增加,后面还会有更一步的描述。
先说整体概念,这是从Libevent官网上摘录的一段描述:
The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.
libevent is meant to replace the event loop found in event driven network servers. An application just needs to call event_dispatch() and then add or remove events dynamically without having to change the event loop.
简单地讲就是libevent将网络服务器常用的event loop 事件驱动模型提取成了一个公共的库,并提供了可移植性。从使用者的角度上看,libevent提供了一个事件循环(event loop),一个缓冲实现evbuffer,一个带缓冲的非阻塞IO框架(bufferevent),一个连接监听器(evconnlistener,初步认为是一个tcp server)一个dns客户端(evdns)。
这里面有个基本的框架就是事件循环——像大多数系统一样,总需要一个核心的数据结构去保存信息,事件循环的核心数据结构就是event_base。event_base就像一个文件句柄一样,在各个函数之间传递来,传递去。
用代码来描述libevent提供的事件循环,大概是这个样子的:
use_libevent(){ // 创建event_base base = event_base_new(); // 创建需要关注的event,读事件 struct event* preadevent = event_new(base,EV_READ,callback); // 绑定事件 event_add(preadevent); // 开始循环,触发事件后便调用事件对应的callback event_base_dispatch(base);}
- libevent的初步认识
- 处理大并发之三 对libevent的初步认识
- 处理大并发之三 对libevent的初步认识
- 处理大并发之三 对libevent的初步认识
- 处理大并发之 对libevent的初步认识
- 处理大并发之 对libevent的初步认识
- 处理大并发之 对libevent的初步认识
- 处理大并发之三 对libevent的初步认识
- 处理大并发之二 对libevent的初步认识
- 处理大并发之三 对libevent的初步认识
- 指针的初步认识!
- 类的初步认识
- return的认识,初步
- checksum的初步认识
- Ajax的初步认识
- xml的初步认识
- 初步的架构认识
- 指针的初步认识
- Java中的深拷贝和浅拷贝
- Spring复习
- POJ 2409 Let it Bead 已翻译
- pull指定属性
- 简答题——heap和stack的区别
- libevent的初步认识
- udp epoll tcp epoll使用
- 云时代,我们的信息我们做主
- 三大概型
- java URL 抓取搜索引擎搜到的词条数
- Java中主要Map类概述
- 获取Bootcamp 6 下载地址(mac装win10)
- Win8/Win8.1/Win10下Vivado例化MIG报错的解决办法
- 应用增加推送功能