我对Python3中的多进程编程一无所知,我正在尝试找到解决问题的最佳方法。 我有一个具有以下结构的主要功能:
初始阶段
while
循环,收集T时间的数据
以最快的方式处理收集的数据,以缩短未收集数据的时间
回到聚会
我的想法是将数据收集放在一个单独的进程中,该进程也可以在处理之前收集的数据时运行。这样,没有收集数据时的时间窗口可以短到将数据从收集过程移动到分析器
我在谷歌上搜索了如何做到这一点,以及如何在收集过程之间共享数据,如何向过程发出我需要数据的信号,以及如何获取收集到的数据,但我找到了很多方法(队列、管理器、管道、事件),我不知道该算法的最佳方法是什么。
我应该从哪里开始寻找multiprocess.Event()
对于主进程和后台进程之间的信令似乎很有希望,但我也希望获得数据(结构化为dict
)
你推荐什么
这是一种使用} 方法,它方便地允许我使用生成器函数指定表示要提交的任务的iterable,它允许我在这些任务可用时“延迟”提交,并在任务完成时处理返回值
multiprocessing.Queue
的方法,您的“数据采集器”可以从子进程向其写入数据,而主进程将从中读取数据,以将任务提交给multiprocessing.Pool
实例。在下面的演示中,我使用了^{出于演示目的,收集的“数据”只是整数,每次收集需要0.1秒,处理过程包括对这些整数进行平方运算,每次计算大约需要0.25秒
印刷品:
相关问题 更多 >
编程相关推荐