1. libevent python
libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用linux
select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent 编程
based,并且libevent在使用上能够作到跨平台,并且根据libevent官方网站上公布的数据统计,windows
彷佛也有着非凡的性能缓存
主要组成: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