Python多进程问题

3

我正在思考编写两个必须并行运行的进程的最佳方式。 我甚至不确定multiprocessing是首选模块。

我使用dataCollector长时间生成大量数据,但我想用dataChecker定期检查数据,同时dataCollector继续运行。 在我看来,有两个重要的时间点需要考虑,一是dataCollector转储文件并开始编写另一个文件的时间,在这个时间点上,dataChecker将开始分析转储的文件;二是dataChecker完成并开始等待dataCollector的时间。

有人可以提供使用multiprocessing模块的一般性概述吗?我应该使用不同的模块吗? 谢谢

1个回答

2
为什么要使用任何模块?可以通过同时启动两个独立的进程来实现。dataChecker会列出目录中的所有文件,计算它们的数量,并休眠一段时间(几秒钟或更多)。然后再次执行此操作,如果文件数量发生变化,则打开新文件,读取并处理它们。
这两个进程的同步完全通过邮箱完成,邮箱是作为一个包含文件的目录来实现的。只有在dataCollector开始写入新消息时才会收到消息。

听起来过于复杂了。为什么不直接将dataCollector管道传输到dataChecker中,并在需要检查数据时将其写入stdout? - Clueless
1
我认为这更简单。为什么要增加代码复杂性,让进程彼此意识到对方的存在呢?这个答案绝对正确,检查器关心的是数据的可用性,而收集器根本不关心检查器。 - agf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接