python模块os.getpid 和os.getppid在多进程中的应用

本文详细介绍了如何使用Python的os模块获取当前进程的PID和PPID,通过实例展示了主进程与子进程间的PID与PPID关系,揭示了进程间父子关系的本质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python函数os.getpid可以获取当前进程的PID,
python函数os.getppid 可以获取当前进程的主进程的PPID
上代码:

import os
from multiprocessing import Process
import time

def main():
    p1 = Process(target=demo1)
    p2 = Process(target=demo2)
    p1.start()
    p2.start()
    print('主进程')
    print('子进程PID:', os.getpid(), '主进程PPID', os.getppid())
    #p1.join()
    #p2.join()

def demo1():
    print('子进程1')
    print('子进程PID:',os.getpid(),'主进程PPID',os.getppid())
    time.sleep(200)


def demo2():
    print('子进程2')
    print('子进程PID:',os.getpid(),'主进程PPID',os.getppid())
    time.sleep(200)

if __name__ == '__main__':
    main()

执行结果:
主进程
子进程PID: 8932 主进程PPID 9128
子进程1
子进程PID: 8976 主进程PPID 8932
子进程2
子进程PID: 5840 主进程PPID 8932

查看任务管理器中的进程PID
在这里插入图片描述
通过对比图片可以发现开始的主进程的PPID号与pycharm的PID是一样的
子进程中的父进程的PPID是主进程的PID
主进程的PPID是pycharm的PID
由此可知pycharm是主进程的父进程,主进程又是子进程的父进程
如果是通过explorer启动的python文件,那么其父进程就是explorer.exe

子进程的PID也有相应的python进程对应
父进程创建的是子进程,每一个子进程都有一个不重复的PID,对每个子进程进行表示
子进程与父进程的资源代码是一致的
这里的子进程是由python文件创建的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值