有时候希望子进程能按需运行,就要用到本文说的方法了。
比如按快捷键就暂停子进程,再按快捷键又恢复子进程。整个过程并不是结束子进程后又启动子进程,只是挂起子进程,子进程恢复后又能继续之前的工作。
总之这个在实际中是非常有用的和实用的。
关键代码:
import psutil
proc = psutil.Process(pid) #传入子进程的pid,这里的pid用子进程的pid替换
proc.suspend() #暂停子进程
下面是完整代码示例:
from multiprocessing import Process
import time
import psutil
def run_proc():
for i in range(20):
print('我是子进程,我正在运行中')
time.sleep(3)
if __name__=='__main__':
#创建并启动一个子进程并获取该子进程的pid以便进行后续测试
p = Process(target=run_proc)
p.start()
pid = p.pid
#-------分隔线-------
#测试暂停子进程
time.sleep(9)
proc = psutil.Process(pid) #传入任意子进程的pid
proc.suspend() #暂停子进程
print('子进程暂停运行')
time.sleep(9)
proc.resume() #恢复子进程
print('\n子进程已恢复运行')
本文介绍了一种实用的方法,能够在不结束子进程的情况下,通过挂起和恢复子进程来实现对其运行状态的控制。使用psutil库,可以轻松地暂停和恢复子进程,此方法在实际应用中非常有用。

406

被折叠的 条评论
为什么被折叠?



