Python 如何使用ThreadPoolExecutor并发运行
我使用线程已经有一段时间了,我发现在使用线程时无法同时运行。以下是一个例子:Python 如何使用ThreadPoolExecutor并发运行,python,multithreading,concurrent.futures,Python,Multithreading,Concurrent.futures,我使用线程已经有一段时间了,我发现在使用线程时无法同时运行。以下是一个例子: 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: pri
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
我想知道如何同时运行列表site\u catalog
中的值?这意味着输出类似于:
>>> 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)