调研-libevent

基础概念

  • 官网:
    • libevent API提供一种机制,可以在以下情况下执行回调
      • fd上出现具体事件、超时时间到达后、支持信号、定期超时产生的回调。
    • libevent 旨在取代 事件驱动的网络服务器中的事件循环,程序只需要调用event_dispatch,然后动态添加或删除事件,无需更改事件循环。
      • 支持 可移植应用程序开发、提供可扩展的事件通知机制、支持多线程。
    • libevent为缓存网络IO提供 复杂框架,支持socket、过滤器、速率限制、SSL、零拷贝文件传输和IOCP。
  • libevent:C实现的异步事件库,支持注册异步事件、检测异步事件以及根据事件的触发先后顺序来调用相应的回调函数。
    • 事件类型:
      • 网络IO事件:如Linux中的epoll等IO多路复用
      • 定时事件:红黑树、最小堆、跳表
      • 信号事件:

主要内容

组件

event

  • 表示单个具体事件,包括事件类型、事件回调等。
  • 事件类型:
    • IO事件:fd可读就绪、可写就绪、发生异常。
    • 定时器事件:在指定时间间隔后触发。
    • 信号事件:当特定信号发生时触发。
    • 持续事件:定期触发,执行周期性任务。

event_base

  • 用于管理所有事件,负责事件的添加、删除和分发。

buffer

  • 提供缓冲区操作,用于网络数据的读写。

evbuffer

  • 提供增强的缓冲区操作,支持链式缓冲区。

bufferevent

  • 基于buffer和evbuffer的更高层次的抽象,用于简化网络数据的读写。
  • 水位/阈值:缓冲区中数据量到达一定阈值触发相应事件。
    • 以TCP连接事件为例,设置读阈值=1024字节,当接收数据>=1024时,bufferevent处于可读状态并触发读事件。
    • 同样设置写阈值=4096字节
这个错误信息表示在CentOS系统的本地库中找不到所需的软件包"libverto-libevent-0.2.5-4.el7.x86_64"。 通常在CentOS系统中,使用包管理器Yum来安装和管理软件包。当我们尝试安装一个软件包时,Yum会自动解决依赖关系并下载所需的软件包。但是如果出现这个错误,意味着在本地库中没有找到所需的软件包。 解决这个问题的方法可能有以下几种: 1. 更新本地库:可以尝试更新本地库,然后再次尝试安装软件包。执行以下命令更新本地库: ``` sudo yum update ``` 2. 检查仓库配置:检查系统中是否配置了正确的仓库源。可以编辑`/etc/yum.repos.d`目录下的仓库配置文件,确保配置文件中包含了正确的软件包仓库源。 3. 安装其他版本的软件包:如果你确实需要安装这个特定版本的软件包,但是本地库中没有该版本的软件包,可以尝试安装其他可用版本的软件包。使用`yum install`命令指定其他可用版本的软件包进行安装。 4. 从其他来源安装:如果以上方法都无法解决问题,可以尝试从其他可信赖的源或第三方库中获取所需的软件包,并手动安装。 需要注意的是,在安装和更新软件包时,确保系统与网络连接正常。如果问题仍然存在,可能是由于软件包在本地库中不可用或已被移除。在这种情况下,可能需要寻找其他途径获取所需的软件包或使用其他替代解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值