futures.threadpool 的多个并发线程
multiple concurrent threads with futures.threadpool
我正在尝试 运行 与主线程并用的多个线程。 运行 一个线程单独适用于 threading.Thread
和 concurrent.futures.ThreadPoolExecutor
。
运行 两个单独的线程根本不起作用。其中一个线程一直 运行s,锁定了其他两个线程。没有 "shared" 资源被锁定 afaik,它们彼此无关(除了调用下一个线程),所以我不明白为什么这行不通
我的代码如下所示:
with concurrent.futures.ThreadPoolExecutor() as executor:
future = executor.submit(function())
result = future.result()
并且线程里面的函数运行ning也调用了:
function():
with concurrent.futures.ThreadPoolExecutor() as executor:
inner_result = (executor.submit(inner_function,"value")).result()
我也尝试过 运行使用以下函数使用此功能:
t = Thread(target=function...
,得到相同的结果。
运行在 python 中设置多个并发线程时,我是否遗漏了什么?
问题是将结果而不是函数本身传递给执行程序。
这个:executor.submit(function())
应该是:executor.submit(function)
我正在尝试 运行 与主线程并用的多个线程。 运行 一个线程单独适用于 threading.Thread
和 concurrent.futures.ThreadPoolExecutor
。
运行 两个单独的线程根本不起作用。其中一个线程一直 运行s,锁定了其他两个线程。没有 "shared" 资源被锁定 afaik,它们彼此无关(除了调用下一个线程),所以我不明白为什么这行不通
我的代码如下所示:
with concurrent.futures.ThreadPoolExecutor() as executor:
future = executor.submit(function())
result = future.result()
并且线程里面的函数运行ning也调用了:
function():
with concurrent.futures.ThreadPoolExecutor() as executor:
inner_result = (executor.submit(inner_function,"value")).result()
我也尝试过 运行使用以下函数使用此功能:
t = Thread(target=function...
,得到相同的结果。
运行在 python 中设置多个并发线程时,我是否遗漏了什么?
问题是将结果而不是函数本身传递给执行程序。
这个:executor.submit(function())
应该是:executor.submit(function)