【问题标题】:multiple concurrent threads with futures.threadpool具有 futures.threadpool 的多个并发线程
【发布时间】:2019-11-21 20:45:51
【问题描述】:

我正在尝试在我的主线程旁边运行多个线程。单独运行一个线程对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】:

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

    这个:executor.submit(function())

    应该是:executor.submit(function)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      相关资源
      最近更新 更多