電腦版
首頁

搜尋 繁體

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.peakbooks.cc

(>人<;)