【问题标题】:How to run concurrently using ThreadPoolExecutor如何使用 ThreadPoolExecutor 并发运行
【发布时间】:2021-04-21 12:37:22
【问题描述】:

我已经使用 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_catalogconcurrent 中的值?这意味着输出将类似于:

>>> Caught:  Thrill
Caught:  Test
Caught:  Thrill
Caught:  Test
Caught:  Test
Caught:  Thrill
Caught:  Test
Caught:  Thrill
Caught:  Thrill
Caught:  Test
Caught:  Thrill

它们不依赖于彼此的执行

【问题讨论】:

    标签: python multithreading concurrent.futures


    【解决方案1】:

    就像替换它一样简单:

    executor.submit(parse_value(value=get_values))
    

    到:

    executor.submit(parse_value, get_values)
    

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2013-04-12
      相关资源
      最近更新 更多