Cent os 下 libevent,greenlet,gevent 的安装 和介绍 记录

那年仲夏 提交于 2019-12-07 17:35:29

 

1.   libevent 

    libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用

select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent 

based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,

似乎也有着非凡的性能

主要组成:libevent包括事件管理、缓存管理、DNS、HTTP、缓存事件几大部分。事件管理包括各

种IO(socket)、定时器、信号等事件;缓存管理是指evbuffer功能;DNS是libevent提供的一个

异步DNS查询功能;HTTP是libevent的一个轻量级http实现,包括服务器和客户端  

centOS下  安装:

wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz

tar zxvf libevent-1.4.12-stable.tar.gz

cd libevent-1.4.12-stable

生成配置 ./configure -prefix=/usrbevent

编译安装 make && make install

测试libevent是否安装成功:ls -al /usr/lib | grep libevent, 有正常的文件及ok


2.   greenlet 

    greenlet 包是 Stackless 的副产品,其将微线程称为 “tasklet” 。tasklet运行在伪并发中,使用channel进行同步数据交换。greenlet 跟stackless的最大区别是greenlet需要你自己来处理线程切换, 就是说,你需要自己指定现在执行哪个greenlet再执行哪个greenlet

安装  :easy_install greenlet(先需要自己安装easy_install)

测试是否安装成功: 

#python

>>import greenlet    无报错就成功


3.   gevent

  gevent就是一个基于coroutine的python网络开发框架。协程是一种并发模型,但不同于thread

和callback,它的所有task都是可以在一个线程里面执行,然后可以通过在一个task里面主动放

弃执行来切换到另一个task执行,它的调度是程序级的,不像thread是系统级的调度。

Gevent最明显的特征就是它惊人的性能,尤其是当与传统线程解决方案对比的时候。在这一点上

,当负载超过一定程度的时候,异步I/O的性能会大大的优于基于独立线程的同步I/O这几乎是常

识了。同时Gevent提供了看上去非常像传统的基于线程模型编程的接口,但是在隐藏在下面做的

是异步I/O。更妙的是,它使得这一切透明

 安装:下载最新gevent

# tar zxvf gevent-1.0.tar.gz

# cd gevent-1.0rc1

# python setup.py install

检测

#python

>>import gevent    无报错就成功


4. 

用他们来做什么?

写网络程序,多线程处理,提高产品性能!


总结: 对于比较好库和开源软件,我们要不学习利用,他山之石可以攻玉 啊   ,加油  G0561

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!