具有futures.threadpool的多个并发线程

问题描述 投票:0回答:1

我正在尝试在主线程旁边运行多个线程。 threading.Threadconcurrent.futures.ThreadPoolExecutor都可以单独运行一个线程。但是,运行两个单独的线程根本不起作用。其中一个线程会一直运行,同时锁定其他两个线程。没有“共享”资源会被锁定afaik,它们彼此之间没有任何关系(除了调用下一个线程),所以我不明白为什么这不起作用

我的代码如下:

with concurrent.futures.ThreadPoolExecutor() as executor:
            future = executor.submit(function())
            result = future.result()

并且在线程内运行的函数也调用:

function():
            with concurrent.futures.ThreadPoolExecutor() as executor:
            inner_result = (executor.submit(inner_function,"value")).result()

我也尝试通过以下方式运行此功能:t = Thread(target=function...,得到相同的结果。

在python中运行多个并发线程时我缺少什么吗?

python-3.x python-multithreading concurrent.futures
1个回答
0
投票

问题是将结果而不是函数本身传递给执行程序。

此:executor.submit(function())

应该是:executor.submit(function)

© www.soinside.com 2019 - 2024. All rights reserved.