第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何與 ThreadPoolExecutor 并行運(yùn)行代碼?

如何與 ThreadPoolExecutor 并行運(yùn)行代碼?

千萬里不及你 2023-06-13 16:29:24
我真的是線程的新手,這讓我很困惑,我怎樣才能并行運(yùn)行這段代碼?def search_posts(page):    page_url = f'https://jsonplaceholder.typicode.com/posts/{page}'    req = requests.get(page_url)    res = req.json()        title = res['title']        return titlepage = 1while True:    with ThreadPoolExecutor() as executer:        t = executer.submit(search_posts, page)        title = t.result()        print(title)    if page == 20:        break    page += 1另一個(gè)問題是我是否需要學(xué)習(xí)操作系統(tǒng)才能理解線程是如何工作的?
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

這里的問題是您正在ThreadPoolExecutor為每個(gè)頁面創(chuàng)建一個(gè)新頁面。要并行執(zhí)行操作,只創(chuàng)建一個(gè)ThreadPoolExecutor并使用它的map方法:


import concurrent.futures as cf

import requests



def search_posts(page):

    page_url = f'https://jsonplaceholder.typicode.com/posts/{page}'

    res = requests.get(page_url).json()

    return res['title']



if __name__ == '__main__':

    with cf.ThreadPoolExecutor() as ex: 

        results = ex.map(search_posts, range(1, 21))

    for r in results:

        print(r)

請(qǐng)注意,使用if __name__ == '__main__'包裝器是使您的代碼更具可移植性的好習(xí)慣。


使用線程時(shí)要記住一件事;python.org如果您使用的是 CPython(最常見的Python 實(shí)現(xiàn)),線程實(shí)際上不會(huì)并行運(yùn)行。


為了使內(nèi)存管理不那么復(fù)雜,一次只能有一個(gè)線程在 CPython 中執(zhí)行 Python 字節(jié)碼。這是由 CPython 中的全局解釋器鎖(“GIL”)強(qiáng)制執(zhí)行的。


好消息是,使用requests獲取網(wǎng)頁將花費(fèi)大部分時(shí)間使用網(wǎng)絡(luò) I/O。通常,GIL 是在 I/O 期間釋放的。


但是,如果您在輔助函數(shù)中進(jìn)行計(jì)算(即執(zhí)行 Python 字節(jié)碼),則應(yīng)改用 a ProcessPoolExecutor。


如果您使用 aProcessPoolExecutor并且在 ms-windows 上運(yùn)行,則需要if __name__ == '__main__'使用包裝器,因?yàn)樵谶@種情況下Python 必須能夠在沒有副作用的情況下運(yùn)行您的主程序。import


查看完整回答
反對(duì) 回復(fù) 2023-06-13
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)