gpt4 book ai didi

python - 遍历多处理队列

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:56 24 4
gpt4 key购买 nike

我有两个多处理线程,一个向队列添加项目,另一个需要遍历当前队列。我如何进行迭代?或者,如何将当前队列转换为列表以进行迭代?

一些伪代码:

import multiprocessing as mp
thequeue = mp.Queue()
def func1():
global thequeue
while True:
item = readstream()
if item not None:
thequeue.put(item)
def func2():
while True:
for item in thequeue: # This only works for Lists, how to do this for queues?
if item == "hi":
print(item)
main():
mp.Process(target=func1).start()
mp.Process(target=func2).start()

最佳答案

如果您想根据for 循环编写代码,您可以使用two-argument form of iter。 :

def func2():
for item in iter(thequeue.get, None):
# do what you want

要停止这个过程,你只需要将一个None放入thequeue,或者如果None你可以自己发出停止信号> 在你的情况下很常见。

请注意,与普通的 for 循环不同,这将从队列中删除项目,就像手动调用 get 一样。在不删除项目的情况下,无法遍历进程间队列。

关于python - 遍历多处理队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com