• 注册
当前位置:1313e > python >正文

python强制关闭进程_Python - multiprocessing运行和停止进程

基本用法

本文只介绍控制进程启停的操作, 因此只用到一个Process类

首先写一个保持运行的方法:

def run_forever():

while 1:

print(time.time())

time.sleep(2)

初始化一个Process实例, target为该实例运行时执行的方法.

通过调用Process类的start方法启动一个进程:

from multiprocessing import Process

p = Process(target=run_forever)

p.start()

要停止一个进程实例,可以调用方法terminate:

p.terminate()

但是通过执行系统命令ps查看停止后的进程, 你会发现, 直接调用terminate方法停止的进程变成了一个僵尸进程(defunct), 只能等待主程序退出, 这个僵尸进程才会消失.

通过在terminate后添加一次调用join方法等待进程真正结束, 就能避免出现僵尸进程:

p.join()

完整代码

import time

from multiprocessing import Process

def run_forever():

while 1:

print(time.time())

time.sleep(2)

def main():

p = Process(target=run_forever)

p.start()

print('start a process.')

time.sleep(10)

if p.is_alive:

# stop a process gracefully

p.terminate()

print('stop process')

p.join()

if __name__ == '__main__':

main()

参考

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录