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