Multithreading 生成器上的Itertools.combines()-Python
假设我有一个生成器,在每次调用时生成一些随机数。我希望这些数字的组合是2Multithreading 生成器上的Itertools.combines()-Python,multithreading,python-3.x,generator,combinations,Multithreading,Python 3.x,Generator,Combinations,假设我有一个生成器,在每次调用时生成一些随机数。我希望这些数字的组合是2 def generate(): while True: # Note this is not actually infinite, just an example yield random(1,10) for combos in iter.combinations(generate(),2): #DO AN OPERATION WITH A COMBINATION #HOW DO
def generate():
while True: # Note this is not actually infinite, just an example
yield random(1,10)
for combos in iter.combinations(generate(),2):
#DO AN OPERATION WITH A COMBINATION
#HOW DO I MULTI-THREAD THIS?
但是我的生成器将产生一个总数‘n’,它是24000多个数字。因此,我需要在组合生成时对其进行处理,而不是存储在列表(内存)中
我还需要通过在至少4个线程之间划分组合来多线程执行此操作
我想做这个循环,即分配4个队列,每个线程负责1个队列
你们还有其他建议吗?我需要脚本尽快完成执行
编辑:
好的,我刚刚编写了这个程序的两个版本(基于列表,基于生成器)
我的基于列表的版本实际上占用更少的内存。这怎么可能
编辑2:
这是因为我试图使用pyplot逐点绘制点。这导致每次调用时都会重新呈现图形