电脑版
首页

搜索 繁体

21 服务端 socket 开发之多线程和 gevent 框架并发测试[python 语言]

热门小说推荐

最近更新小说

测试下多线程和 gevent 在 socket 服务端的小包表现能力,测试的方法不太严谨,有点属于自娱自乐,要是有问题之处,请大家喷之!

每个连接都特意堵塞了 0.5 秒钟!

图片 21.1 pic

在大批量 tcp 测试下,threading 的开销越来越大,所以造成了在并发数加大的情况下,出现 threading 崩溃的情况!gevent 是 libevent 和协程的融合,一个线程里面都可以跑超多的协程! 利用 libevent 做 io 堵塞的调度,gevent 体系下,同一时间只有一个任务在运行!

先来测试下多线程: 我们就不加线程池了

#!/usr/bin/env python # -*- coding: utf-8 -*- #xiaorui.ccimport sysimport socketimport timeimport threading #xiaorui.ccdef threads(port): s = socket.socket s.bind((\'0.0.0.0\', port)) s.listen(500) while True:cli, addr = s.acceptt = threading.Thread(target=handle_request, args=(cli, time.sleep))t.daemon = Truet.startdef handle_request(s, sleep): try:s.recv(1024)sleep(0.5) s.send(\'\'\'http/1.0 200 OK Hello World! \'\'\')s.shutdown(socket.SHUT_WR)print \'.\', except Exception, ex:print ex finally:sys.stdout.flushs.closeif __name__ == \'__main__\': threads(4444)

Loading...

未加载完,尝试【刷新网页】or【关闭小说模式】or【关闭广告屏蔽】。

使用【Firefox浏览器】or【Chrome谷歌浏览器】打开并收藏!

移动流量偶尔打不开,可以切换电信、联通网络。

收藏网址:www.ziyungong.cc

(>人<;)