【发布时间】:2019-11-21 20:45:51
【问题描述】:
我正在尝试在我的主线程旁边运行多个线程。单独运行一个线程对threading.Thread 和concurrent.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