我希望能夠訪問傳入一個用于執行緒的函式的引數,以便將函式的結果與傳入的引數相匹配。在Python中使用ThreadPoolExecutor。
data = [[url1, 1], [url2, 2], [url3, 3] ]
lst = []
with concurrent.futures.ThreadPoolExecutor() as executor:
結果 = [executor.submit(check, var1, var2) for var1, var2 in data]
for f in concurrent.futures.as_completed(results)。
結果 = f.result()
if 結果。
lst.append([result, ????])
所以我希望最后一行的'????'是與'result'對應的串列'data'中的元素。
歡呼吧
uj5u.com熱心網友回復:
你使用一個字典,其鍵為Future物件,其值為傳遞的引數。
results = {executor.submit(check, var1, var2) 。(var1, var2) for var1, var2 in data}.
當你想參考時,只需使用類似lst.append([result, results[f]])
data = [[url1, 1], [url2, 2], [url3, 3]]
lst = []
with concurrent.futures.ThreadPoolExecutor() as executor:
結果 = {executor.submit(check, var1, var2): (var1, var2) for var1, var2 in data}.
for f in concurrent.futures.as_completed(results.keys())。
結果 = f.result()
if 結果。
lst.append([result, results[f]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/325313.html
標籤:
