[英]How to run concurrently using ThreadPoolExecutor
我已經使用 Threading 工作了一段時間,但我發現當我使用線程時我無法同時運行。 這是一個例子:
import concurrent.futures
import time
import random
from typing import List
site_catalog: List[str] = ["Thrill", "Test"]
def parse_value(value: str) -> None:
while True:
print("Caught: ", value)
time.sleep(random.randint(3, 5))
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
for get_values in site_catalog:
executor.submit(parse_value(value=get_values))
>>> Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
Caught: Thrill
我想知道如何同時運行 List site_catalog
中的值? 這意味着 output 將類似於:
>>> Caught: Thrill
Caught: Test
Caught: Thrill
Caught: Test
Caught: Test
Caught: Thrill
Caught: Test
Caught: Thrill
Caught: Thrill
Caught: Test
Caught: Thrill
他們不依賴於彼此的執行
只需將其替換為:
executor.submit(parse_value(value=get_values))
至:
executor.submit(parse_value, get_values)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.