查看进程号

进程号

一台计算机上面会运行很多进程,微信、QQ、office…,为了方便区分和管理这些进程,操作系统会给每一个进程分配一个进程号(pid号),也就是process_id。mac或者Linux查看计算机所有正在运行的进程号使用:ps aux;windows使用tasklist

image-20230226113721106

映像名称就是进程名,PID对应的就是进程号

查询子进程


方法一

使用``multiprocessingcurrent_process`模块

from multiprocessing import Process, current_process
import time


def task():
    print(f'{current_process().pid}任务执行中')
    time.sleep(100)  # 沉睡100s,可以去命令行查询


if __name__ == '__main__':
    p = Process(target=task)
    p.start()
    print('主进程')

image-20230226142727444

运行之后,可以使用命令行去查询这个进程:

  • Windows:tasklist | findstr pid号

    image-20230226142802161

  • Mac和Linux:ps aux | grep pid号

方法二

使用os模块的getpid()不仅可以简单的获取pid号,还可以使用getppid()获取当前进程的父进程号

from multiprocessing import Process
import time
import os

def task():
    print(f'{os.getpid()}任务执行中')  ## 获取当前进程号
    time.sleep(100)  # 沉睡100s,可以去命令行查询


if __name__ == '__main__':
    p = Process(target=task)
    p.start()
    print('主进程')

查询父进程


使用getppid()获取当前进程的父进程号

思考:最后一行代码打印的进程号是什么

from multiprocessing import Process, current_process
import time
import os


def task(name='子进程'):
    print(f'{name}{os.getpid()}执行中')
    print(f'{name}{os.getpid()}的父进程{os.getppid()}执行中')


if __name__ == '__main__':
    p = Process(target=task)
    p.start()
    print(f'主进程{os.getpid()}正在执行')
    print(f'主进程{os.getpid()}的父进程{os.getppid()}是哪个进程呢?')

答案是pycharm,因为是pycharm创建了这个python文件

杀死进程


使用p.terminate()杀死当前进程,使用p.is_alive()查看进程是否存活

from multiprocessing import Process
import time
import os


def task():
    print(f'{os.getpid()}执行中')  # 获取当前进程号
    # time.sleep(100)


if __name__ == '__main__':
    p = Process(target=task)
    p.start()
    p.terminate()
    time.sleep(0.001) # sleep一会,因为运行p.terminate()时pythpn并不会直接杀死进程,而是向系统发起调用,所以sleep一会再去判断才会杀死进程
    print(p.is_alive())
    print('主进程')

image-20230226150019268

如果你打印的是True,是因为你的电脑太慢了,可以更换电脑或者sleep更久一点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈有点东西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值