我正在尝试使用并发期货进行线程化,但是似乎某些期货没有返回,它们会无限期地运行

时间:2018-08-05 08:03:57

标签: python multithreading python-multithreading concurrent.futures

def parallelize_task_by_thread(func, iterable, workers=4):

    with ThreadPoolExecutor(max_workers=workers) as executor:

        future_to_url = {executor.submit(func, i): i for i in iterable}
        result = []
        for future in concurrent.futures.as_completed(future_to_url, timeout=120):
            response = future.result()
            result.append(response)
        return result

在此代码中,即使在超时之后,某些期货也永远不会返回。我无法理解这里出了什么问题。几天前,这段代码可以正常工作。 而且由于未来不会返回for循环,因此永远不会停止,因此就这样停留,不会发生异常或其他任何事情。

我主要是使用此功能来访问我自己的AWS服务器API以获取结果,并且我的API始终会返回我已经检查并确定的错误信息

我遇到了类似的问题here

0 个答案:

没有答案