Python中的twisted,tornado,gevent分析?

Python中的twisted,tornado,gevent?

  • gevent
    Python的并發(fā)框架

代碼看起來好看一些,但是維護比較差,patch沒有規(guī)律,而且里面封裝了C,對python3的支持最差.

  • twisted
    Python的事件驅動,異步執(zhí)行任務的網(wǎng)絡框架框架

穩(wěn)定性是最好的,但是需要較長時間的學習.對python3的支持較差.

  • tornado
    Python的web開發(fā)框架

兼容性最好.但是過于簡單了,功能不強,另外沒有python數(shù)據(jù)庫適配器能和tornado無縫對接,因此調用數(shù)據(jù)庫很麻煩,而且只支持web.

tornado見解

tornado雖然是一個異步框架,但是也僅僅是框架而已,他只是實現(xiàn)了get或者post方法相對于返回消息的異步處理,但是畢竟是單進程單線程的,通過一個事件隊列來對所有經(jīng)過了自己事件化的事物做的分片處理,遇到執(zhí)行一個沒有異步化的命令,比如有IO操作的命令(或者耗時的命令),自然框架就無能為力了,雖然他自己實現(xiàn)了一些異步的工具,比如AsyncHttpClient,但是還是太少了,比如訪問數(shù)據(jù)庫的網(wǎng)絡IO,等待數(shù)據(jù)庫返回數(shù)據(jù),向redis請求數(shù)據(jù)等等,絕大部分關鍵的操作其實都是包含了blocking的IO操作的.

gevent見解

gevent可以說實現(xiàn)的比較徹底,他把所有的sockt,disk 的IO操作都做了協(xié)程化處理,所以結合結合到tornado的異步化框架,效果肯定要好不少,特別是那種處理過程中涉及到IO操作頻繁的場景,更為明顯.

twisted見解

他支持很多種協(xié)議,包括UDP,TCP,TLS和其他應用層協(xié)議,這點非常好,開發(fā)人員可以直接只用這些協(xié)議的實現(xiàn).

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,823評論 6 427
  • 環(huán)境管理管理Python版本和環(huán)境的工具。p–非常簡單的交互式python版本管理工具。pyenv–簡單的Pyth...
    MrHamster閱讀 3,949評論 1 61
  • GitHub 上有一個 Awesome - XXX 系列的資源整理,資源非常豐富,涉及面非常廣。awesome-p...
    若與閱讀 19,305評論 4 417
  • 沒有人能打動我 哪怕一字一句 可你只是沉默 便要了我的命啊
    蘇蘇諾閱讀 113評論 0 4
  • 執(zhí)行力管理培訓認為,人的執(zhí)行力與人的認知、態(tài)度、能力息息相關。 認知:對自己對事物的一種認識和理解。體現(xiàn)自己的智能...
    scho閱讀 658評論 0 0

友情鏈接更多精彩內容