问题描述
我想使用 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 (将#修改为@)