繁体   English   中英

Python:子进程可以暂停/恢复父进程

[英]Python: can a child process pause/resume the parent

我正在尝试制作一个温度监控模块,将当前温度连续保存到文件中,然后使用matplotlib绘制一个图形,无论它用于完成任何内容。 我有这个功能,所以我可以使用它:

with TemperatureMonitoring():
    # do stuff

__enter__被调用时,进程开始,这只是一个休眠和写入文件的无限循环,当__exit__被调用时,进程终止,文件被绘制到屏幕上。

现在我想进行改进,所以我想让子进程控制成为父进程; 如果温度太高太久,它会暂停并等待电脑冷却。 这是我第一次使用multiprocessing模块,但似乎如果我暂停主进程,孩子也会暂停。 因此,如果我达到临界状态,它将无法取消其自身。 因此,父代必须能够在代码完成执行时终止子代,并且子代表必须能够在必要时暂停/恢复父代。 有没有明显的方法来实现这一目标?

最简单的方法是使用双工multiprocessing.Pipemultiprocessing.Pipe 然后,父母可以向孩子发送命令以关闭,并且孩子可以向父母发送关于温度水平的通知。

使用共享内存是最快的IPC(进程间通信)。

您可以使用posix_ipc包来建立共享内存和信号量。 共享内存将保持温度和信号量将让您使进程等待并继续。

当谈到终止进程时,我建议使用主循环中的条件执行该进程。 这样你就可以关闭所有手柄了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM