tornado框架介紹

Tornado是一個Python web框架和異步網絡庫,最初是在FriendFeed開發的。經過使用非阻塞網絡I/O, Tornado能夠擴展到數以萬計的開放鏈接,很是適合長輪詢、WebSockets和其餘須要與每一個用戶進行長時間鏈接的應用程序。python

咱們知道tornado是一個異步網絡庫並且是非阻塞網絡IO模型,那, 什麼是異步,同步, 什麼又是阻塞非阻塞呢?

(來自知乎上面嚴肅大牛的解答~)web

1.同步與異步

同步和異步關注的是消息通訊機制 django

所謂同步,就是在發出一個調用時,在沒有獲得結果以前,該調用不會返回。可是一旦調用返回,就獲得返回值了。編程

換句話說,就是由調用者主動等待這個調用的結果flask

而異步則是相反,調用發出以後,這個調用就直接返回了,因此沒有返回結果。換句話說,當一個異步過程調用發出後,調用者不用馬上獲得結果。而是在調用發出後,被調用者經過狀態,通知來通知調用者,或經過回調函數處理這個調用。服務器

 2.阻塞與非阻塞

阻塞與非阻塞關注的是程序在等待調用結果時的狀態 網絡

阻塞調用是指調用結果返回以前,當前線程會被掛起。調用線程只有在等到結果以後纔會返回。框架

非阻塞調用指在不能馬上獲得結果以前,該調用不會阻塞當前線程。異步

PS:若是想深刻了解同步,異步,阻塞,非阻塞,常見的IO模型以及IO多路複用,能夠去看看unix網絡編程。函數

 

而後再來看看python三大框架的區別~~ 

簡單聊聊django, flask, tornado

1.django框架 

這個框架給人第一印象就是很「重」,django就是一個重型武器,它的MVC設計很是優美。基本上把你開發須要用的功能都給你封裝好了,你直接拿來用就好。

因此django開發效率是最高的,可是它給你什麼都封裝的太好,你必須按着它那套來,可擴展性差了點。

2.flask框架

這個和django對比起來,它就是一個短小精悍的武器,很是輕量級這個框架,內置的組件遠遠比不上django,可是flask有很是強大且活躍的第三方社區提供的牛逼插件,

真正用起來django的組件能夠去找插件來彌補。而後學習flask的話,建議把源碼搞明白了,由於flask是個可擴展性很是強的框架,搞懂源碼之後方面封裝flask的功能。。

3.tornado框架

這個和前面兩個框架最大的區別就是,tornado是一個異步網絡庫,用的非阻塞網絡IO模型,因此性能是比較高的。自身還能夠用來作web服務器。

PS:其實學會了一個框架,就發現 web框架基本上用法都差很少。提議看下框架源碼,幫助挺大的。

相關文章
相關標籤/搜索