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

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

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

3天內不再提示

python協程之await等待過程理解

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

目標

用一個等待過程理解,能夠實現一致的方便,70行代碼

例子說明

某方需要2,執行req2需要執行這個時間,最終執行時間是3秒,大約1秒,同時執行;如果最終時間是秒,如果執行的話,具體請參看,友情提示是,yield from 方法后面如果是它的工具,可以進入____

import time
from collections import deque

_delay = deque()


class FutureX:
def __init__(self, coro=None, delay_second=None):
self.coro = coro
if delay_second:
self.start = delay_second + time.time()

def step(self):
coro = self.coro
try:
result = coro.send(None)
except StopIteration as e:
print(e.value)
pass
else:
if isinstance(result, FutureX):
_delay.append((self._wakeup, result))
else:
pass

def _wakeup(self):
self.step()

def __iter__(self):
yield self
return None


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


@coroutine
def sleep0(seconds):

future = FutureX(delay_second=seconds)
b = yield from future
return seconds


async def req1(delay_seconds):
resp_time = await sleep0(delay_seconds)
return resp_time


async def req2(delay_seconds):
resp_time = await sleep0(delay_seconds)
return resp_time


t1 = time.time()
f1, f2 = FutureX(req1(2)), FutureX(req2(1))
f1.step()

f2.step()


while _delay:
callback, args = _delay.popleft()
start = args.start
if not start:
continue
while True:
end = time.time()
if start <= end:
try:
callback()
except StopIteration as e:
pass
break

print(f'花費的時間:{round(time.time() - t1,1)}')

'''
結果:
2
1
花費的時間:2.0
'''



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4802

    瀏覽量

    84890
收藏 人收藏

    評論

    相關推薦

    使用TMS320C6416處理器:Turbo處理器(TCP)

    電子發燒友網站提供《使用TMS320C6416處理器:Turbo處理器(TCP).pdf》資料免費下載
    發表于 10-23 10:16 ?0次下載
    使用TMS320C6416<b class='flag-5'>協</b>處理器:Turbo<b class='flag-5'>協</b>處理器(TCP)

    使用TMS320C6416處理器:Viterbi處理器(VCP)

    電子發燒友網站提供《使用TMS320C6416處理器:Viterbi處理器(VCP).pdf》資料免費下載
    發表于 10-21 09:36 ?0次下載
    使用TMS320C6416<b class='flag-5'>協</b>處理器:Viterbi<b class='flag-5'>協</b>處理器(VCP)

    如何幫助孩子高效學習Python:開源硬件實踐是最優選擇

    顯著提升孩子的學習興趣和對Python原理的理解。本文將探討為何使用Raspberry Pi(樹莓派)或Unihiker(行空板)等開源硬件是孩子們掌握Python的最佳途徑。 讓孩子們在Py
    的頭像 發表于 09-06 09:49 ?349次閱讀

    使用Python進行Ping測試

    )請求包,然后等待目標主機返回響應包,從而測量網絡的延遲和丟包情況。隨著Python編程語言的廣泛應用,越來越多的網絡工程師開始使用Python進行自動化網絡測試和管理任務。本篇文章將詳細介紹如何使用
    的頭像 發表于 08-12 17:56 ?567次閱讀
    使用<b class='flag-5'>Python</b>進行Ping測試

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2142次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python在多個平臺
    的頭像 發表于 07-24 10:41 ?610次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?1314次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?910次閱讀

    使用Python進行自然語言處理

    在探討使用Python進行自然語言處理(NLP)的廣闊領域時,我們首先需要理解NLP的基本概念、其重要性、Python在NLP中的優勢,以及如何通過Python實現一些基礎的NLP任務
    的頭像 發表于 07-04 14:40 ?480次閱讀

    鴻蒙OS開發實例:【ArkTS類庫異步并發async/await

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

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

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

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1277次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    鴻蒙輕內核源碼分析:MMU 處理器

    1、 ARM C15 處理器 在 ARM 嵌入式應用系統中, 很多系統控制由 ARM CP15 處理器來完成的。CP15 處理器包含編號 0-15 的 16 個 32 位的寄存器。例如,ARM
    的頭像 發表于 02-20 14:28 ?640次閱讀
    鴻蒙輕內核源碼分析:MMU <b class='flag-5'>協</b>處理器

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? 在Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序中的錯誤。在本文
    的頭像 發表于 01-31 10:41 ?2693次閱讀

    談談程的那些事兒

    隨著異步編程的發展以及各種并發框架的普及,程作為一種異步編程規范在各類語言中地位逐步提高。我們不單單會在自己的程序中使用程,各類框架如fastapi,aiohttp等也都是基于異步以及程進行實現。那到底什么是
    的頭像 發表于 01-26 11:36 ?1137次閱讀
    談談<b class='flag-5'>協</b>程的那些事兒
    主站蜘蛛池模板: 午夜影院7cdy| 精品一区二区三区视频| 久久精品福利| 成人免费久久精品国产片久久影院| 五月婷婷影院| 色网站观看| 欧美性另类| 婷婷在线观看网站| 一级毛片免费全部播放完整| 午夜色视频在线观看| 人与禽交免费网站视频| 校园激情综合网| 色婷婷久| 黄色片免费看视频| 成人久久伊人精品伊人| 国产一区二区影院| wwww亚洲| 色中色在线视频| 欧美3区| www.热| 色牛网| 国产一区二区三区在线观看影院 | 日韩三级免费看| 狠狠鲁狠狠操| 午夜毛片福利| 天天摸天天碰成人免费视频| 又长又大又粗又硬3p免费视| 99色综合| 综合丁香| 久久系列| 亚洲一区二区精品推荐| 天天综合色一区二区三区| 午夜肉伦伦影院| 牛牛精品| 亚洲播播| 激情六月丁香婷婷| 亚洲国产成人久久精品图片| 蕾丝视频成人★在线观看| 精品成人网| 日本特级黄色录像| 男女一级特黄a大片|