Python的网络编程库Gevent的安装及使用技巧
|
安装(以CentOS为例) wget -q http://peak.telecommunity.com/dist/ez_setup.py (2)使用 python ez_setup.py (3)使用easy_install 查看命令是否可用,如果不可用可以讲路径加入到PATH中 yum install python-devel (2) easy_install greenlet 4.安装gevent pip install cython -e git://github.com/surfly/gevent.git@1.0rc2#egg=gevent 使用技巧
import gevent
from gevent.server import StreamServer
def eat_cpu():
for i in xrange(10000): pass
def cb(socket,address):
eat_cpu()
socket.recv(1024)
socket.sendall('HTTP/1.1 200 OKnnHello World!!')
socket.close()
server = StreamServer(('',80),cb,backlog=100000)
server.pre_start()
gevent.fork()
server.start_accepting()
server._stopped_event.wait()
打上monkey.patch_os后,os.fork就可以被gevent.fork替代了,这样同时multiprocessing模块也可以像往常一样使用,并达到并行处理的效果了。 from gevent import monkey; monkey.patch_os() from gevent.server import StreamServer from multiprocessing import Process def eat_cpu(): for i in xrange(10000): pass def cb(socket,backlog=100000) server.pre_start() def serve_forever(): server.start_accepting() server._stopped_event.wait() process_count = 4 for i in range(process_count - 1): Process(target=serve_forever,args=tuple()).start() serve_forever() (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
