色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

python協程之asyncio簡單使用

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

目錄

簡單的使用

相同和同步的對比

下載的例子

1.簡單的使用

import asyncio

async def req1():
await asyncio.sleep(1)
print('執行 req1')
return 1


async def req2():
print('執行 req2')
return 2


async def main():
list = [req1(), req2()]
res = await asyncio.gather(*list)
'''
雖然,req2是先執行完的,
但是res返回值的順序, 還是跟list順序保持一致
'''
print(res)


asyncio.get_event_loop().run_until_complete(main())
'''
結果:
執行 req2
執行 req1
[1, 2]
'''

2.相似和同時的對比

測試2個請求,同時觸發請求執行的時間短,我是延遲讓請求延遲返回

import asyncio
import time

import requests
from aiohttp import ClientSession


async def fetch(session, param):
async with session.get as resp:
data = await resp.json()
return data


async def req_async():
async with ClientSession() as session:
return await asyncio.gather(fetch(session, 2), \
fetch(session, 1))


def req():
session = requests.Session()
p1, p2 = 2, 1
return [
session.get.json(),
session.get.json()
]


async def main():
s1 = time.time()
v1 = await req_async()
s2 = time.time()
v2 = req()
print(f'異步請求時間:{round(s2-s1,1)}s \
響應結果:{[v["args"]["a"] for v in v1]}')
print(f'同步請求時間:{round(time.time()-s2,1)}s \
響應結果:{[v["args"]["a"] for v in v2]}')


if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())
'''
結果:
異步請求時間:3.2s 響應結果:['2', '1']
同步請求時間:7.9s 響應結果:['2', '1']
'''


3.相關下載的例子

看似請求、極大的文件限制、意外保存

async def download(sem, page: int, folder: str, session: ClientSession):
async with sem:
async with session.get(url, params={'page': page}) as resp:
async with aiofiles.open(f'{folder}/{page}.json', mode='w') as f:
await f.write(await resp.text())
return page


async def main():
# 請求url參數列表
url_pages = range(1, 5)
# 創建文件夾data
folder_name = 'data'
if not os.path.exists(folder_name):
os.makedirs(folder_name)
# 限制并發數量
sem = asyncio.Semaphore(50)
# 異步請求,并保存到文件
async with ClientSession(connector=TCPConnector(limit=5),
timeout=ClientTimeout(300)) as session:
tasks = []
for page in url_pages:
tasks.append(download(sem, page, folder_name, session))
result = await asyncio.gather(*tasks)
exp = set(url_pages)
act = set(result)
if exp == act:
print(f'全部下載完成')
else:
print(f'未成功:{exp - act},成功:{exp & act}')


if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())




審核編輯:劉清

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

    關注

    56

    文章

    4797

    瀏覽量

    84789
收藏 人收藏

    評論

    相關推薦

    華為云 Flexus X 實例下的場景體驗——小企業使用 Python 語言——超迅速搭建簡單公網 API 接口服務

    ? 前言 小企業為了快速搞定一些接口功能如果不使用 Python 的話相對來說復雜度還是很高的,這里我來通過【華為云 Flexus X 實例】來迅速的搭建一個 Python 的 WebApi 示例
    的頭像 發表于 12-27 13:46 ?123次閱讀
    華為云 Flexus X 實例下的場景體驗——小企業使用 <b class='flag-5'>Python</b> 語言——超迅速搭建<b class='flag-5'>簡單</b>公網 API 接口服務

    使用Python進行串口通信的案例

    當然!以下是一個使用Python進行串口通信的簡單示例。這個示例展示了如何配置串口、發送數據以及接收數據。我們將使用 pyserial 庫,這是一個非常流行的用于串口通信的Python庫。 首先,你
    的頭像 發表于 11-22 09:11 ?250次閱讀

    使用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)

    第二屆大會回顧第25期 | OpenHarmony上的Python設備應用開發

    Python以其簡單、易學和功能強大而聞名,有著廣泛的用戶群體。采用Python開發有助于降低OpenHarmony的學習門檻。如何在OpenHarmony上用Python開發設備應用
    的頭像 發表于 08-27 11:53 ?724次閱讀
    第二屆大會回顧第25期 | OpenHarmony上的<b class='flag-5'>Python</b>設備應用開發

    pytorch和python的關系是什么

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

    Python建模算法與應用

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

    opencv-python和opencv一樣嗎

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

    用pycharm進行python爬蟲的步驟

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

    tensorflow簡單的模型訓練

    TensorFlow開始,然后介紹如何構建和訓練一個簡單的神經網絡模型。 1. 安裝TensorFlow 首先,我們需要安裝TensorFlow。TensorFlow支持多種編程語言,包括Python、C++
    的頭像 發表于 07-05 09:38 ?708次閱讀

    Python:從串口讀取數據并以16進制格式展示

    本文凌順實驗室(lingshunlab.com)簡單實現Python讀取串口數據,并且按16進制格式顯示出來。
    的頭像 發表于 03-05 14:25 ?1119次閱讀
    <b class='flag-5'>Python</b>:從串口讀取數據并以16進制格式展示

    基于Python的地圖繪制教程

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

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

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

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

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

    談談程的那些事兒

    隨著異步編程的發展以及各種并發框架的普及,程作為一種異步編程規范在各類語言中地位逐步提高。我們不單單會在自己的程序中使用程,各類框架如fastapi,aiohttp等也都是基于異步以及程進行實現。那到底什么是
    的頭像 發表于 01-26 11:36 ?1124次閱讀
    談談<b class='flag-5'>協</b>程的那些事兒
    主站蜘蛛池模板: 日韩午夜欧美精品一二三四区| 亚洲合集综合久久性色| 一级特黄aa大片欧美| 精品夜夜澡人妻无码AV蜜桃| 伊人久久久久久久久香港| 色噜噜色啪在线视频| 国产精品久久人妻拍拍水牛影视| 性西欧俄罗斯极品| 久久精品中文騷妇女内射| 97在线视频免费| 色偷偷av男人的天堂| 好大的太粗好深BL| 99视频全部看免费观| 无羞耻肉动漫在线观看| 久久艹伊人| 第四色男人天堂| 一本色道久久综合一区| 欧美一区二区三区男同| 国产精品嫩草免费视频| 100国产精品人妻无码| 日韩一区二区三区视频在线观看| 国产亚洲欧美在线中文BT天堂网 | 国产乱色伦影片在线观看| 一道本无吗d d在线播放| 强奷乱码欧妇女中文字幕熟女| 嗨嗨快播电影| 春水福利app导航| 诱人的女邻居9中文观看| 色即是空 BT| 毛片视频大全| 国内精品久久久久久久试看| 99久久国产露脸精品国产麻豆| 亚洲 欧美 中文 日韩 另类| 欧美巨大巨粗黑人性AAAAAA| 国内自拍 在线 亚洲 欧美| xxx日本高清视频hd| 幼儿交1300部一区二区| 特污兔午夜影视院| 欧美午夜福利主线路| 久久日韩精品无码一区| 国产视频a在线观看v|