簡體   English   中英

python中concurrent.futures ThreadPoolExecutor的問題

[英]Problem with concurrent.futures ThreadPoolExecutor in python

我做了一個函數,給出一個包含不同圖像鏈接的列表,他們下載它們。 為了加快這個過程,我使用了線程。 這是我寫的:

with ThreadPoolExecutor() as executor:
    executor.map(self .__descargar_imagen__, self.links_paginas)

這里__descargar_imagen__是一個下載圖像的函數, links_paginas 是包含所有鏈接的列表。 問題是由於某種原因,使用該代碼,程序不會等待所有線程完成,因此它只下載部分圖像。 有沒有辦法讓程序等到所有線程都用 concurrent.futures ThreadPoolExecutor 終止?

使用 multiprocessing.pool:

from multiprocessing.pool import ThreadPool
checker = ThreadPool(processes).imap_unordered(downloader_function, url_list)
for foo in checker:
    print(foo)

其中,“processes”是您要運行的進程數。 您可以使用 os/multiprocessing 中的 cpu_count() 函數來獲取可以在給定系統上運行的最大進程數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM