网络通信库Libevent的基本介绍

Libevent是一个轻量级、开源的网络库,与之相似的还有ACE(但是它比较庞大臃肿),Libev(可以说它是对Libevent的扩展,但是没有Libevent更稳定),当然还有Windows下非常强大的I/O完全端口(没有研究过再见),不过据说,最新的Libevent好像也可以支持完全端口哦。

 

下面直接上干货(针对最新的稳定的2.0.22版本)!

 

优点:

1、跨平台:支持Windos,Linux,Mac Os

2、支持各种I/O多路复用技术:select、poll、epoll、kqueue等(在不同的平台上都是选择最优的技术,比如在Windows下选择select,在Linux下选择epoll)。

{

这里顺带说一下,select跟epoll的一些区别

相同点:select跟epoll都是I/O多路复用技术,都可以用来实现高并发访问

不同点:

select:跨平台、采用轮询模式(也就是说每次有事件发生的时候都要进行遍历)、能监听的文件描述符受限于FD_SETSIZE,一般为1024,实现相对简单

epoll:只支持Linux,更加灵活,文件描述符不会受限制,使用一个文件描述符来管理多个文件描述符,将用户关系的文件描述符存放到内核的事件表中,这样从用户态到内核态只需要拷贝一次,不需要每次都进行遍历,但是实现相对复杂

使用场景:

绝大部分下我们都应该用epoll,因为epoll的优点导致它在大部分情况下都比select的效率更高,但如果我们是在局域网并且访问量不大的时候就可以使用select,这样select的效率反而会高,而且相对简单

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值