可移植性:
  使用 LibEvent 编写的程序应该在 LibEvent 支持跨越的所有平台上工作,即使没有更好的方法来处理。
  非阻塞式IO:LibEvent也应该支持一般的方法使程序可以运行在某些限制的环境中.
速度:
  LibEvent 试图在每一个平台实现最快的非阻塞式 IO,而不会引入太多的额外开销. 
可扩展性:
  LibEvent 设计为即使在成千上万的 socket 情况下也能良好工作. 
方便:
无论在什么情况下,用 LibEvent 来编写程序最自然的方式都应该是稳定可靠的.
LibEvent 由下列组件构成: 
  evutil:用于抽象出不同平台网络实现的通用功能. 
  eventandevent_base:libevent 的核心,为各种平台特定的、基于事件的非阻塞IO后端提供抽象 API,
      让程序可以知道套接字何时已经准备好,可以读或者写,并且处理基本的超时功能,检测OS信号. 
  eufferevent:为libevent 基于事件的核心提供使用更方便的封装.除了通知程序套接字已经准备好读写之外,还让程序可以请求缓冲的读写操作,可以知道何时IO已经真正发生.
    (bufferevent 接口有多个后端,可以采用系统能够 提供的更快的非阻塞IO方式 ,如Windows 中的 IOCP) 
  evbuffer:在bufferevent 层之下实现了缓冲功能,并且提供了方便有效的访问函数. 
  evhttp:一个简单的HTTP 客户端/服务器实现. 
  evdns:一个简单的DNS 客户端/服务器实现. 
  evrpc:一个简单的RPC 实现.
创建libevent 时,默认安装下列库: 
  libevent_core:所有核心的事件和缓冲功能,包含了所有的event_base、evbuffer、bufferevent 和工具函数.
 libevent_extra:定义了程序可能需要,也可能不需要的协议特定功能,包括HTTP、DNS和RPC.
 libevent:这个库因为历史原因而存在,它包含 libevent_core 和 libevent_extra 的内容 .不应该使用这个库未来版本的libevent。可能去掉这个库.
某些平台上可能安装下列库: 
  libevent_pthreads:添加基于 pthread可移植线程库的线程和锁定实现.它独立于libevent_core,这样程序使用 libevent 时就不需要链接到 pthread,
  除非是以多线程方式使用libevent. 
  libevent_openssl:这个库为使用 bufferevent 和 OpenSSL 进行加密的通信提供支持。
  它独立于 libevent_core,这样 程序使用libevent 时就不需要链接到 OpenSSL,除非是进行加密通信.

概念理解-Libevent的更多相关文章

  1. 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制

    今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...

  2. SpringIOC的概念理解、构造器注入、setter注入、p命名空间注入、IOC容器介绍与比较

    1.IOC概念理解 IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...

  3. Kubernetes重要概念理解

    Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...

  4. SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制

    组织模型   资源模型  操作模型 谁能够执行哪些操作    执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...

  5. elasticsearch基本概念理解+elasticsearch 的shards unassigned处理方法 -- 最佳运维实践 - 集群规划

    1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas ...

  6. fragment概念理解

    fragment概念理解知识,fragment概念理解图片 fragment概念理解内容,fragment概念理介绍,fragment概念理正文 Fragment是Android honeycomb ...

  7. ubuntn系统下将文件拷贝到优盘中及挂载概念理解

    参考资料:http://jingyan.baidu.com/article/7082dc1c76f178e40a89bdd3.html: http://bbs.csdn.net/topics/3801 ...

  8. Ceph 概念理解

    简介 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务. 在虚拟化领域里,比较常用到的是Ceph的块设备存储, ...

  9. JavaScript的作用域和块级作用域概念理解

    作用域 作用域永远都是任何一门编程语言中的重中之重,因为它控制着变量与参数的可见性与生命周期.说到这里我们需要理解两个概念:块级作用域与函数作用域. 函数作用域 这个应该好理解,函数作用域就是说定义在 ...

随机推荐

  1. 由 [SDOI2012]Longge的问题 探讨欧拉函数和莫比乌斯函数的一些性质和关联

    本题题解 题目传送门:https://www.luogu.org/problem/P2303 给定一个整数\(n\),求 \[ \sum_{i=1}^n \gcd(n,i) \] 蒟蒻随便yy了一下搞 ...

  2. Day20 磁盘管理2之RAID卡

    1.磁盘的基本分区Gdisk 前面我们已经了解到fdisk分区,但fdisk不支持给高于2TB的磁盘进行分区.如果有单块盘高于2TB,建议使用Gdisk进行分区. 1.使用gdisk进行磁盘分区 1. ...

  3. vue入门之创建第一个实例,挂载点、模板和实例之间的关系

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. windows下tomcat启动日志乱码

    在windows下用startup.bat启动时,控制台里显示乱码,如图: 解决方案: 修改conf文件下的logging.properties文件,将控制台输出的编码修改为GBK: java.uti ...

  5. CSS3相关编码规范

    一.CSS书写顺序 1.位置属性(position, top, right, z-index, display, float等)2.大小(width, height, padding, margin) ...

  6. 什么是VR中的vection?

    Vection是VR领域的一个专有名词,其义指“在虚拟现实中给人带来‘移动’(self-motion)感觉的认知因素”1.也就是说,vection就是指那些给玩家带来“我正在这个虚拟环境中移动”这种感 ...

  7. centos 7 常用yum源配置

    使用centos系统最熟悉的莫过于yum命令,yum命令可以让安装软件变得那么简单,编译安装的依赖关系大部分都会解决. 工具/原料   centos 7 wget yum 方法/步骤     什么是y ...

  8. MySQL日期和时间类型笔记

    最近在看<MySQL技术内幕:SQL编程>并做了笔记,这是一篇笔记类型博客,分享出来方便自己复习,也可以帮助其他人 一.日期时间类型所占空间对比 各种日期时间数据类型所占的空间: 类型 所 ...

  9. ant path匹配原则

    ant path匹配原则 又称路径匹配原则,spring中的相关策略类org.springframework.util.AntPathMatcher 路径模式使用了apache ant的路径样式 ap ...

  10. jsonp 跨域Uncaught SyntaxError: Unexpected token :解决方法

    [jQuery]Ajax实现跨域访问JSON Ajax跨域访问JSON 环境:.net4.0+jQuery+JSON.net 因为在跨域实现,所以这里新建网站,这个网站只需要Ashx文件 public ...