gpt4 book ai didi

python - Producer/Consumer 多个生产者和单个消费者写入文件 Python

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:00 26 4
gpt4 key购买 nike

我的要求类似于Multiple producers, single consumer除了我在 python 中需要它

我创建了一个产生 5 个并发进程的应用程序(我正在使用多处理库)。这 5 个进程独立地生成 dict 格式的输出。

之前我将输出打印到控制台,但现在想将它输出到文件。

我正在寻找一种模式,我的所有 5 个生产者都写入一个支持并发写入的共享队列。

单个消费者进程也可以访问此队列并使用其中的数据,如果没有数据可写则可以等待,并在生产者完成任务后终止。

谢谢阿努杰

最佳答案

因为您已经在使用多进程,所以您只需要 Queue 类

和一个示例(从队列文档修改)

from multiprocessing import Process, Queue

def child(q, url):
result = my_process(url)
q.put(result)

if __name__ == '__main__':
q = Queue()
urls = [...]
children = []
for url in urls:
p = Process(target=child, args=(q,url))
p.start()
children.append(p)
for p in children:
p.join()
print q.get() #or write to file (might not be the answer from this child)

编辑:对于每个 child 的多个答案,将最后一个 for 循环替换为:

while 0 != multiprocessing.active_children():
print q.get()

关于python - Producer/Consumer 多个生产者和单个消费者写入文件 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7266210/

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