我的输入数据可以分为两个不同的选项,让我们称之为"a";以及";b";。根据所选择的选项,我的程序应该做不同的事情;a";比";b";并且它们不能同时运行;a";我想检查是否有活动的";b";处理,如果是则杀死它并运行";a";而是进行一次"处理";a";过程完成;b";再次处理。有什么建议吗?
如果你不能同时运行多个进程,那么你就不需要多处理,所以我假设你可以一次运行多个A任务和多个B任务,只是不能同时运行这两个任务。
最好的方法是有一个控制器进程、一个a进程和一个B进程。B进程以规则的间隔暂停,并使用empty()
检查其管道中的停止信号。如果不是空的,那么进程可能会保存它的工作终止。
https://docs.python.org/3/library/multiprocessing.html
如果由于某种原因以上内容不可接受,您也可以尝试直接向进程发送信号,但我对发送野生SIGTERM非常谨慎。
https://docs.python.org/3/library/signal.html