在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python協(xié)程之解釋async關(guān)鍵字原理

冬至配餃子 ? 來源:繆斯之子 ? 作者:肖新苗 ? 2022-08-24 17:58 ? 次閱讀

目標

解釋async關(guān)鍵字原理, 同時舉例說明協(xié)程中斷, 并交出控制權(quán)

例子說明

跟yield from的實現(xiàn)一樣, 每一行程序都是按順序一步一步執(zhí)行的,如果有程序不是按順序執(zhí)行,表示曾經(jīng)交出了控制權(quán),以下的例子,本來應該應該順序輸出1,2,但是因為req1交出了控制權(quán),所以,輸出了2,1

import time
from collections import deque

from asynciox.taskx import sleep

_delay = deque()


def sleep1():
def sleep01():
yield
return None
co = sleep01.__code__
sleep01.__code__ = co.replace(co_flags=co.co_flags | 0x100)
return sleep01()


def coroutine(func):
co = func.__code__
func.__code__ = co.replace(co_flags=co.co_flags | 0x100)
return func


@coroutine
def sleep0():
'''
裝飾器@:可以理解為 sleep0=coroutine(sleep0),意思就是sleep0函數(shù)執(zhí)行之前,
先調(diào)用coroutine方法執(zhí)行一段內(nèi)容之后,再把sleep0返回來
'''
yield
return None


async def req1():
b = await sleep0()
return 1


async def req2():
return 2


f1 = req1()
try:
result = f1.send(None)
except StopIteration as e:
print(f'正常打印 {e.value}')
pass
else:
_delay.append((f1, 1+time.time()))

f = req2()
try:
f.send(None)
except StopIteration as e:
print(f'正常打印 {e.value}')
pass

for i, v in _delay:
start = v
while True:
end = time.time()
if start < end:
try:
result = i.send(None)
except StopIteration as e:
print(f'延遲打印 {e.value}')
pass
break
pass

'''
結(jié)果:
正常打印 2
延遲打印 1
'''


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    900

    瀏覽量

    41807
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4811

    瀏覽量

    85086
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之Kconfig介紹

    一下Kconfig語法規(guī)則。 Kconfig語法 Kconfig文件描述了菜單選項,每行都是以關(guān)鍵字開頭,我們逐一解釋關(guān)鍵字意義: config config config是關(guān)鍵字
    發(fā)表于 01-06 10:02

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之Kconfig介紹

    一下Kconfig語法規(guī)則。Kconfig語法Kconfig文件描述了菜單選項,每行都是以關(guān)鍵字開頭,我們逐一解釋關(guān)鍵字意義:configconfig config是關(guān)鍵字,表示一個配
    發(fā)表于 01-04 10:18

    C語言關(guān)鍵字分別發(fā)生在哪個階段

    以下C語言關(guān)鍵字,分別發(fā)生在哪個階段? 第一個,define。 首先得糾正一下,define 并不是C語言里面的關(guān)鍵字,即使加了井號,也不是。 define 屬于C語言的預處理指令,很顯然,它發(fā)生
    的頭像 發(fā)表于 11-24 10:31 ?246次閱讀

    C語言關(guān)鍵字--typedef

    C語言關(guān)鍵字使用方法學習指南!
    的頭像 發(fā)表于 10-07 12:44 ?352次閱讀

    使用邊緣AI和Sitara處理器進行關(guān)鍵字檢測

    電子發(fā)燒友網(wǎng)站提供《使用邊緣AI和Sitara處理器進行關(guān)鍵字檢測.pdf》資料免費下載
    發(fā)表于 09-02 11:30 ?0次下載
    使用邊緣AI和Sitara處理器進行<b class='flag-5'>關(guān)鍵字</b>檢測

    typedef struct和直接struct的區(qū)別

    使用方式和靈活性上存在一些區(qū)別。下面詳細解釋這兩種方式的區(qū)別和用法。 直接使用 struct 當你直接使用 struct 關(guān)鍵字定義一個結(jié)構(gòu)體時,你創(chuàng)建了一個新的類型,但你需要通過 struct
    的頭像 發(fā)表于 08-20 10:58 ?3140次閱讀

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學習領(lǐng)域的應用。 Python簡介 Python是一種高級、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?2463次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向?qū)ο蟮木幊陶Z言,在科學計算、數(shù)學建模、數(shù)據(jù)分析等領(lǐng)域展現(xiàn)出了卓越的性能。其簡潔的語法、對動態(tài)輸入的支持以及解釋性語言的本質(zhì),使得Python在多個平臺
    的頭像 發(fā)表于 07-24 10:41 ?675次閱讀

    用pycharm進行python爬蟲的步驟

    PyCharm,然后點擊“Create New Project”創(chuàng)建一個新的Python項目。選擇一個合適的項目名稱和位置,然后選擇Python解釋器。如果您還沒有安裝Py
    的頭像 發(fā)表于 07-11 10:11 ?973次閱讀

    快速掌握C語言關(guān)鍵字

    C語言中的32個關(guān)鍵字你知道多少個呢?根據(jù)關(guān)鍵字的作用分為四類:數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、存儲類型關(guān)鍵字和其它
    的頭像 發(fā)表于 07-06 08:04 ?436次閱讀
    快速掌握C語言<b class='flag-5'>關(guān)鍵字</b>

    inline關(guān)鍵字被優(yōu)化導致此類函數(shù)被布局在flash內(nèi),怎么處理?

    問題解決。 但是,希望樂鑫官方把idf內(nèi)源碼中的inline關(guān)鍵詞都替換為__attribute((always_inline)),因為inline關(guān)鍵字不可靠! 期待下次idf版本更新能解決此bug,自己修改idf源碼真的是權(quán)宜之計、臨時之策。
    發(fā)表于 06-21 12:03

    鴻蒙OS開發(fā)實例:【ArkTS類庫異步并發(fā)async/await】

    async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關(guān)鍵字聲明一個函數(shù)為異步函數(shù),并使用await關(guān)鍵字等待Pro
    的頭像 發(fā)表于 04-02 20:57 ?1142次閱讀
    鴻蒙OS開發(fā)實例:【ArkTS類庫異步并發(fā)<b class='flag-5'>async</b>/await】

    鴻蒙原生應用開發(fā)-ArkTS語言基礎類庫異步并發(fā)簡述async/await

    async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關(guān)鍵字聲明一個函數(shù)為異步函數(shù),并使用await關(guān)鍵字等待Pro
    發(fā)表于 03-06 14:44

    用cubeied開發(fā)sdram擴展內(nèi)存報錯是為什么?

    在mdk里面可以利用attribute關(guān)鍵字來將數(shù)組存放在外擴的SDRAM里面。但是在cubeide里面這樣做就會報錯,哪位大佬可以解釋一下
    發(fā)表于 03-06 07:25

    內(nèi)聯(lián)函數(shù)定義 為什么需要內(nèi)聯(lián)函數(shù)

    inline關(guān)鍵字是C99標準的型關(guān)鍵字,其作用是將函數(shù)展開,把函數(shù)的代碼復制到每一個調(diào)用處。
    的頭像 發(fā)表于 02-19 12:20 ?613次閱讀
    主站蜘蛛池模板: 美女扒开尿口让男人捅 | 国产亚洲午夜精品a一区二区 | 你懂的网站在线播放 | 精品视频一区二区三区 | 欧美涩区| 日本三级成人午夜视频网 | 好吊色7777sao在线视频观看 | 免费的日本网站 | 老头天天吃我奶躁我的动图 | 亚洲爱婷婷色婷婷五月 | 亚洲视频一区网站 | 久操视频在线播放 | 青草久| 久久99精品久久久久久秒播 | 色月| 天天爱添天天爱添天天爱添 | 国产综合在线视频 | 毛片网站免费在线观看 | 永久免费看www色视频 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 欧美日韩精品一区二区在线线 | 亚洲精品色图 | 黄色软件入口 | 亚洲精品九色在线网站 | 国产超爽人人爽人人做 | 中文在线免费看影视 | 国产精品免费观看网站 | 一区在线免费观看 | 久久天天躁狠狠躁夜夜免费观看 | 正在播放羽月希与黑人bd在线 | 海棠高h粗暴调教双性男男 韩国韩宝贝2020vip福利视频 | 人人爱天天操 | 日韩免费看 | 色视频网站大全免费 | 天天操天天看 | 五月天激情开心网 | 色狠狠狠狠综合影视 | 一区二区三区在线观看免费 | 免费一级欧美片在线观看 | 国产精品你懂得 | 成年片色大黄全免费 |