带有 ThreadPoolExecutor 的生成器

问题描述

我想使用 ThreadPoolExecutor 并行运行多个生成器,但找不到方便的方法

这里有一些代码可以稍微说明我需要什么。

def mygen(i):
  for j in range(10):
    yield i*j

def combined_gen():
  with concurrent.futures.ThreadPoolExecutor() as ex:
    futures = [ex.submit(mygen,i) for i in range(10)]
    for future in concurrent.futures.as_completed(futures):
      yield from future.result()

但它不起作用。
一种方法

def mygen(i):
  return [ 
    i*j for j in range(10)
  ]

但是在这里,我们需要等待整个列表在它返回之前计算完毕。 我希望 mygen 继续计算这些值,但继续产生它已经计算过的任何值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)