成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第一節(jié):同步與異步I/O

Anleb / 1676人閱讀

摘要:上一篇文章開篇下一篇文章第一章異步及協(xié)程基礎(chǔ)第二節(jié)關(guān)鍵字協(xié)程是種推薦的編程方式,使用協(xié)程可以開發(fā)出簡捷高效的異步處理代碼。同步操作,導(dǎo)致進程阻塞,直到操作完成異步操作,不會導(dǎo)致請求進程阻塞。

上一篇文章:Python:Tornado 開篇
下一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第二節(jié):Python關(guān)鍵字yield

協(xié)程是Tornado種推薦的編程方式,使用協(xié)程可以開發(fā)出簡捷、高效的異步處理代碼。

同步與異步I/O對比

眾所周知,CPU的運行效率高于磁盤的存儲,也高于網(wǎng)絡(luò)請求,這就導(dǎo)致CPU對數(shù)據(jù)的處理和數(shù)據(jù)的存儲或者網(wǎng)絡(luò)請求(I/O操作)步伐不一致,此時可以選擇I/O操作同步或者異步。

同步I/O操作,導(dǎo)致進程阻塞,直到I/O操作完成;

異步I/O操作,不會導(dǎo)致請求進程阻塞。

Tornado同步I/O的簡單代碼實例:

代碼:

#導(dǎo)入Tornado的HTTP客戶端
from tornado.httpclient import HTTPClient

def synchronous_visit():
    http_client=HTTPClient()
    #阻塞,知道對網(wǎng)址訪問完成
    respone=http_client.fetch("http://www.baidu.com")
    print(respone.body)
synchronous_visit()

HTTPClient是Tornato的同步訪問HTTP客戶端。上述代碼中的synchronous_visit()函數(shù)使用了典型的同步I/O操作來訪問網(wǎng)址,該函數(shù)的執(zhí)行時間取決于網(wǎng)絡(luò)速度、對方服務(wù)器的響應(yīng)速度,只有當(dāng)訪問完全結(jié)束并獲取結(jié)果后,該函數(shù)才能執(zhí)行完成。

Tornado異步I/O的簡單代碼實例:
from tornado.httpclient import AsyncHTTPClient
def handle_response(response):
    print(response.body)

def asyncronous_visit():
    http_client=AsyncHTTPClient()
    http_client.fetch("http://www.baoidu.com",callback=handle_response)

AsyncHTTPClient是Tornado的異步訪問HTTP客戶端。在上述代碼中的asynchronous_visit()函數(shù)中使用了AsyncHTTPClient對第三方網(wǎng)站進行異步訪問,http_client.fetch()函數(shù)會在調(diào)用后立刻返回而無需等待實際訪問的完成,從而導(dǎo)致asynchronous_visit()也會立刻執(zhí)行完成。當(dāng)對網(wǎng)址的訪問實際完成后,AsyncHTTPClient會調(diào)用callback參數(shù)指定的函數(shù),可以在這個函數(shù)中處理訪問結(jié)果。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42600.html

相關(guān)文章

  • PythonTornado 一章異步協(xié)程基礎(chǔ):第二節(jié):Python關(guān)鍵字yield

    摘要:在種,使用關(guān)鍵字定義的迭代器也被稱為生成器迭代器迭代器是訪問集合內(nèi)元素的一種方式。調(diào)用任何定義包含關(guān)鍵字的函數(shù)都不會執(zhí)行該函數(shù),而是會獲得一個隊應(yīng)于該函數(shù)的迭代器。 上一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第一節(jié):同步與異步I/O下一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第三節(jié):協(xié)程 協(xié)程是Tornado中進行異步I/O代碼開發(fā)的方法...

    reclay 評論0 收藏0
  • PythonTornado 一章異步協(xié)程基礎(chǔ):第三節(jié):協(xié)程

    摘要:上一篇文章第一章異步及協(xié)程基礎(chǔ)第二節(jié)關(guān)鍵字下一篇文章第二章實戰(zhàn)演練開發(fā)網(wǎng)站第一節(jié)網(wǎng)站結(jié)構(gòu)使用協(xié)程可以開發(fā)出類似同步代碼的異步行為。協(xié)程函數(shù)可以通過以下三張方式調(diào)用在本身是協(xié)程的函數(shù)內(nèi)通過關(guān)鍵字調(diào)用。 上一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第二節(jié):Python關(guān)鍵字yield下一篇文章:Python:Tornado 第二章:實戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第...

    charles_paul 評論0 收藏0
  • PythonTornado 開篇

    摘要:作為網(wǎng)站的基礎(chǔ)框架,于年月日發(fā)布,目前已經(jīng)獲得了很多社區(qū)的支持,并且在一系列不同的場景種得到應(yīng)用。使用該框架,開發(fā)者能夠快速開發(fā)出即安全又強大的用戶身份認證機制,例如機制用戶身份認證防止跨站攻擊等等。 下一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第一節(jié):同步與異步I/O Tornado是一個可擴展的非阻塞Web服務(wù)器以及相關(guān)工具的總稱。Tornado每秒可以處理...

    Anshiii 評論0 收藏0
  • PythonTornado 第二章:實戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第一節(jié):網(wǎng)站結(jié)構(gòu):Hello

    摘要:上一篇文章第一章異步及協(xié)程基礎(chǔ)第三節(jié)協(xié)程下一篇文章第二章實戰(zhàn)演練開發(fā)網(wǎng)站第二節(jié)網(wǎng)站結(jié)構(gòu)路由解析實例瀏覽器輸入鏈接頁面顯示下面逐行解析上面的代碼做了些什么首先通過語句引入包中的和類。該對象的第一個餐食用于定義程序的路由映射。 上一篇文章:Python:Tornado 第一章:異步及協(xié)程基礎(chǔ):第三節(jié):協(xié)程下一篇文章:Python:Tornado 第二章:實戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第...

    Taonce 評論0 收藏0
  • Tornado 4.3文檔翻譯: 用戶指南-異步和非阻塞I/O

    摘要:譯者說于年月日發(fā)布,該版本正式支持的關(guān)鍵字,并且用舊版本編譯同樣可以使用這兩個關(guān)鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續(xù)的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發(fā)布,該版本正式支持Python3.5的async/await關(guān)鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關(guān)鍵字,這無疑是一種進步。其次...

    smartlion 評論0 收藏0

發(fā)表評論

0條評論

Anleb

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<