跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问 Python 中的 ThreadPoolExecutor 嵌套使用时外层如何能不等待内层结果并直接返回
未分類
15 7 月 2020

请问 Python 中的 ThreadPoolExecutor 嵌套使用时外层如何能不等待内层结果并直接返回

请问 Python 中的 ThreadPoolExecutor 嵌套使用时外层如何能不等待内层结果并直接返回

資深大佬 : Hiyokunotori 12

先上代码

from concurrent.futures import ThreadPoolExecutor import time from loguru import logger  def func1(x):     time.sleep(2)     return x  def func2():     my = []     exe = ThreadPoolExecutor()     for r in exe.map(func1,range(10)):         my.append(r)     exe.shutdown()     logger.info(my)  def func3():     exe = ThreadPoolExecutor(1)     exe.submit(func2)     # 这里我想先返回 1,然后异步执行函数 haha2,但是我如果设置了 wait 为 False 的话 haha2 就不会执行,     # 不设置的话得等到 haha2 执行完毕才能返回 1,我该怎么做     exe.shutdown(wait=False)     return 1  if __name__ == '__main__':     res = func3()     print(res) 

我现在的需求是有三个函数,函数 2 中会使用 ThreadPoolExecutor 去执行函数 1(为了提升效率),函数 3 中会执行函数 2 并返回一个值,但是我想函数 3 先返回值就给一个 ThreadPoolExecutor(1)并且设置 wait 为 False,但是这样函数 2 并没有执行,请问我该如何实现我得目的。。。还是说 ThreadPoolExecutor 不适用这种场景,那么我应该怎么办呢

大佬有話說 (2)

  • 資深大佬 : xiaolinjia

    def func3():
    import threading
    t = threading.Thread(target=func2)
    t.start()
    return 1

  • 資深大佬 : ToughGuy

    直接把 futures return 回去

    def func2():
    —-….
    —-returun exe.map(func1,range(10))

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具