【系统】Libevent库和Libev

Libevent简介

 Libevent库 是一个用C语言开发的、轻量级的开源高性能事件通知库,主要功能特点如下:

  1. 事件驱动(event-driven),高性能;
  2. 注册事件分优先级;
  3. 支持 网络I/O,定时器和信号等事件信息;
  4. 跨平台,支持多操作系统,例如:Linux,Windows,Mac;
  5. 开源,源代码精简比较易懂,易读;
  6. 轻量级,专注于网络,不像 ACE 那么臃肿巨大;
  7. 支持多路I/O复用,poll,select,epoll等等。

  Libevent库 已经被广泛的应用,作为底层的网络库;比如 Netchat、Vomit、Nylon、memcached等等。

  Libevent 是一个典型的 Reactor 模型,什么是Reactor模式?

  Reactor模式首先是事件驱动的,可以处理并发服务请求,当有一个或多个并发输入源,会有一个Service Handler,有多个Request Handlers,这个Service Handler会同步的将输入的请求(Event)多路复用的分发给相应的Request Handler。原理图如下:

 

所有的事件处理都会经过中间的Service Handler,然后Service Handler会将各个事件分发到具体的Request Handler去处理。

 

Libevent官网地址:http://libevent.org/

 

Libevent版本目前有两种,1.4系列和2.0系列这两个稳定版本。1.4系统比较老,比较适合学习,并且1.4和2.0两个系列的版本接口不兼容,所以1.4升级到2.0需要重新编码。因此2.0系统比较新,建议使用。

  

Libevent下载安装

 wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

 tar -zxvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

 ./configure

make && make install && echo [ ok ]

如果不会装可以查看目录下README文件,有安装步骤及说明

songguojundeMBP:libevent-2.0.22-stable songguojun$ cat README 
0. BUILDING AND INSTALLATION (Briefly)

$ ./configure
$ make
$ make verify   # (optional)
$ sudo make install

1. BUILDING AND INSTALLATION (In Depth)

To build libevent, type

$ ./configure && make

     (If you got libevent from the git repository, you will
      first need to run the included "autogen.sh" script in order to
      generate the configure script.)

You can run the regression tests by running

$ make verify

Install as root via

# make install

 

 

  

 

posted @ 2018-09-21 10:47  songguojun  阅读(684)  评论(0编辑  收藏  举报