国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python3 使用 asyncio 代替線程

bergwhite / 3705人閱讀

摘要:提供了協(xié)程專用的關(guān)鍵字還提供了庫(kù)來(lái)進(jìn)行異步非阻塞的操作異步非阻塞的操作沒(méi)有老師檢查我也不知道自己算不算完全懂了就不做無(wú)用功嘗試說(shuō)得通俗易懂了想要從原理開(kāi)始理解的話推薦的文檔我為何使用來(lái)代替?zhèn)鹘y(tǒng)線程進(jìn)行操作由于時(shí)間主要耗費(fèi)在操作上其他操作并發(fā)

python3提供了協(xié)程專用的關(guān)鍵字async await, 還提供了asyncio庫(kù), 來(lái)進(jìn)行異步非阻塞的io操作
異步非阻塞的io操作?

沒(méi)有老師檢查我也不知道自己算不算完全懂了, 就不做無(wú)用功嘗試說(shuō)得通俗易懂了.
想要從原理開(kāi)始理解的話, 推薦tornado的文檔

我為何使用asyncio來(lái)代替?zhèn)鹘y(tǒng)線程進(jìn)行io操作?

由于時(shí)間主要耗費(fèi)在io操作上, 其他操作并發(fā)需求不大.

不用規(guī)定并行多少, 比較方便穩(wěn)定.

熟悉tornado工作原理

舉例

并行訪問(wèn)某網(wǎng)頁(yè)十次

import asyncio
import requests
loop = asyncio.get_event_loop()
async def t():                                                    
    get = lambda:requests.get("http://baidu.com")
    temp = await loop.run_in_executor(None, get)
    print(temp)   
loop.run_until_complete(asyncio.gather(*[t() for i in range(10)]))

上面這幾行代碼就可以完成這些操作了.

loop = asyncio.get_event_loop() 協(xié)程本身并不具備并行能力, 但是有了這個(gè)事件loop就可以進(jìn)行并行io請(qǐng)求

get = lambda:requests.get("http://baidu.com")
temp = await loop.run_in_executor(None, get)

一般函數(shù)是無(wú)法被await修飾的, 必須用api封裝一下(感覺(jué)很像threading), 我之所以再封裝一次get, 是因?yàn)?b>run_in_executor傳參數(shù)比較坑, 不支持**kwargs

loop.run_until_complete(asyncio.gather(*[t() for i in range(10)]))

run_until_complete這個(gè)api是指運(yùn)行內(nèi)容物直到結(jié)束(api如其名), gather是把任務(wù)組合到一起, 如果*的部分有迷惑的話, 你寫(xiě)asycio.gather(t(),t(), t()...)也是可以的.

おわり.

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41341.html

相關(guān)文章

  • Python協(xié)程(真才實(shí)學(xué),想學(xué)的進(jìn)來(lái))

    摘要:所以與多線程相比,線程的數(shù)量越多,協(xié)程性能的優(yōu)勢(shì)越明顯。值得一提的是,在此過(guò)程中,只有一個(gè)線程在執(zhí)行,因此這與多線程的概念是不一樣的。 真正有知識(shí)的人的成長(zhǎng)過(guò)程,就像麥穗的成長(zhǎng)過(guò)程:麥穗空的時(shí)候,麥子長(zhǎng)得很快,麥穗驕傲地高高昂起,但是,麥穗成熟飽滿時(shí),它們開(kāi)始謙虛,垂下麥芒。 ——蒙田《蒙田隨筆全集》 上篇論述了關(guān)于python多線程是否是雞肋的問(wèn)題,得到了一些網(wǎng)友的認(rèn)可,當(dāng)然也有...

    lykops 評(píng)論0 收藏0
  • Python中的并發(fā)處理之使用asyncio

    摘要:并發(fā)用于制定方案,用來(lái)解決可能但未必并行的問(wèn)題。在協(xié)程中使用需要注意兩點(diǎn)使用鏈接的多個(gè)協(xié)程最終必須由不是協(xié)程的調(diào)用方驅(qū)動(dòng),調(diào)用方顯式或隱式在最外層委派生成器上調(diào)用函數(shù)或方法。對(duì)象可以取消取消后會(huì)在協(xié)程當(dāng)前暫停的處拋出異常。 導(dǎo)語(yǔ):本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之控制流程篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門(mén)Python的朋友們可以來(lái)一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、了解asyncio...

    tuniutech 評(píng)論0 收藏0
  • tornado6與python3.7 異步新姿勢(shì)

    摘要:這是我重新復(fù)習(xí)的原因放棄了之前自己實(shí)現(xiàn)的全面擁抱的這個(gè)改動(dòng)是非常大的而且閱讀的源碼可以發(fā)現(xiàn)其中大部分函數(shù)都支持了類型檢驗(yàn)和返回值提示值得閱讀 廢話不多說(shuō),直接上代碼 __auth__ = aleimu __doc__ = 學(xué)習(xí)tornado6.0+ 版本與python3.7+ import time import asyncio import tornado.gen import t...

    maxmin 評(píng)論0 收藏0
  • Tornado 4.3文檔翻譯: 用戶指南-協(xié)程

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

    SimonMa 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<