成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

協程與多進程的完美結合

開發
協程與多進程的結合,每個進程里面多個協程同時運行,充分利用CPU的每一個核心,又充分利用了IO等待時間,把CPU跑滿,把網絡帶寬跑滿。強強聯合,速度更快。

我們知道,協程本質上是單線程單進程,通過充分利用IO等待時間來實現高并發。在IO等待時間之外的代碼,還是串行運行的。因此,如果協程非常多,多少每個協程內部的串行代碼運行時間超過了IO請求的等待時間,那么它的并發就會有一個上限。

舉個例子,電飯煲煮飯,洗衣機洗衣服,熱水壺燒水,他們都是啟動設備以后就能自己運行,我們可以利用他們自己運行的時間,讓這三件事情看起來幾乎在同時進行。但如果除了這三件事情外,還有開電視,開空調,發微信……等等幾十個事情。每個事情單獨拿出來確實都只需要做個開頭,剩下的就是等,但由于做這個開頭也需要時間,因此把他們全部啟動起來也要不少時間,你的效率還是被卡住。

現在,如果有兩個人一起來做這些事情,那情況就不一樣了。一個人煮飯和燒水,另一個人開洗衣機,開電視和空調。效率進一步提升。

這就是協程與多進程的結合,每個進程里面多個協程同時運行,充分利用CPU的每一個核心,又充分利用了IO等待時間,把CPU跑滿,把網絡帶寬跑滿。強強聯合,速度更快。

有一個第三方庫aiomultiprocess,讓你能用幾行代碼就實現多進程與協程的組合。

首先使用pip安裝:

python3 -m pip install aiomultiprocess

它的語法非常簡單:

from aiomultiprocess import Pool
async with Pool() as pool:
results = await pool.map(協程, 參數列表)

只需要3行代碼,它就會在你CPU上每個核啟動一個進程,每個進程中不停啟動協程。

我們來寫一段實際代碼:

import asyncio
import httpx
from aiomultiprocess import Pool

async def get(url):
async with httpx.AsyncClient() as client:
resp = await client.get(url)
return resp.text


async def main():
urls = [url1, url2, url3]
async with Pool() as pool:
async for result in pool.map(get, urls):
print(result) # 每一個URL返回的內容

if __name__ == '__main__':
asyncio.run(main())

之前我寫異步協程文章的時候,有些人同學會問我,爬蟲的速度真的那么重要嗎?難道不是突破反爬蟲最重要嗎?

我的回答是,不要看到用aiohttp請求網址就覺得是做爬蟲。在微服務里面,自己請求自己的HTTP接口,也需要使用httpx或者aiohttp。在這樣的場景里面,速度就是非常的重要,有時候就是需要做到越快越好。

責任編輯:趙寧寧 來源: 未聞Code
相關推薦

2020-04-07 11:10:30

Python數據線程

2023-05-10 07:47:08

Python并發編程

2021-09-16 09:59:13

PythonJavaScript代碼

2023-10-12 09:46:00

并發模型線程

2023-11-17 11:36:59

協程纖程操作系統

2020-11-29 17:03:08

進程線程協程

2023-12-13 09:56:13

?多進程多線程協程

2025-06-26 04:10:00

2009-06-04 10:44:34

StrutsHibernate配合

2011-03-07 16:10:41

FireFTPFirefoxFTP

2022-05-17 09:19:17

XebianLinuxLinux 發行版

2022-12-30 07:50:05

無棧協程Linux

2017-08-10 15:50:44

PHP協程阻塞

2020-08-04 10:56:09

進程線程協程

2010-04-29 10:32:14

虛擬技術上海世博會

2009-07-03 13:54:38

Java Servle

2021-03-17 11:29:24

物聯網環境數據環境風險

2009-08-02 17:26:11

以太網電源以太網供電

2009-01-06 09:19:16

Google Andr華碩Eee PCGoogle 操作系統

2024-02-05 09:06:25

Python協程Asyncio庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区高清不卡 | 91久久久久久久久 | 久久青草av | 成人在线精品视频 | 请别相信他免费喜剧电影在线观看 | 国产精品1区2区3区 欧美 中文字幕 | 一区二区手机在线 | 国产综合网址 | www.788.com色淫免费 | 一本一道久久a久久精品综合蜜臀 | 亚洲高清久久 | 毛片网站免费观看 | 久久亚洲天堂 | 91免费看片 | 成人免费淫片aa视频免费 | 九九久久精品视频 | 精品一区二区在线观看 | 久久国产亚洲 | 久久久日韩精品一区二区三区 | 91免费在线播放 | 91亚洲欧美 | 亚洲va国产日韩欧美精品色婷婷 | 中文字幕人成人 | 日韩视频中文字幕 | 成人免费观看男女羞羞视频 | 久久久久久久久久久久久九 | 久久久久久久久久久高潮一区二区 | 国产午夜视频 | 亚洲视频一区在线观看 | 一区二区三区在线观看免费视频 | 精品国产乱码久久久久久久久 | 成人精品免费视频 | 欧美国产精品久久久 | 日韩福利| 一区二区三区在线播放视频 | 网站黄色av | 日本视频在线播放 | 激情毛片 | 一区二区三区免费在线观看 | 在线看亚洲 | 三级国产三级在线 |