我想排队
lambda : Popen(.....)
稍后致电/等待。 然后向暂停的Popens添加更多内容到队列中, 然后再次消耗它们等等。
主Queue模块非常关注同步,这使得 api在某些地方感觉有点怪异。我不关心同步(单线程 程序,Popen只是做他们的工作,并在错误时抛出异常,他们不会影响 环境以任何重要的方式(它们生成文件)
我是否应该使用我稍后添加的生成器。 如果是这样的话,那就是向生成器添加项目的好方法,请调用
gena = itertools.chain(gena,[item))
每次看起来都很浪费。
答案 0 :(得分:3)
是的,您可以使用deque(collections.deque),这是一个可以在任一端高效推送和弹出的列表。您也可以使用列表而不用担心效率低下,因为它可能无关紧要。
答案 1 :(得分:3)
您可以使用collections.deque:
from collections import deque
queue = deque()
queue.append(new) # append
current = queue.popleft() # first item
答案 2 :(得分:2)
由于您不关心多线程,因此逻辑选择似乎是collections.deque。