python子进程中的多处理PID更改

时间:2018-07-16 01:33:34

标签: python-3.x python-multiprocessing

import multiprocessing
import os
def run_proc(name):
    print('Run child process %s (%s)...' % (name, os.getpid()))
    counter = 0
    for i in range(0, 1):
        print("!!!weird process id: %s" % (os.getppid()))
def start():
    p = None
    for i in range(0, 1):
        p = multiprocessing.Process(target=run_proc, args=('test',))
        p.start()
if __name__ == '__main__':
    print('Parent process %s.' % os.getpid())
    start()

运行结果为: 父进程31476。

运行子进程测试(31488)...

!!!奇怪的进程ID:31476

我的问题是:为什么pid数在for循环中发生变化?

1 个答案:

答案 0 :(得分:1)

从您的代码中可以看到,您正在呼叫os.getppid() ,它返回父级的进程ID。您还可以注意到,您的“怪异”进程ID与父进程的ID相同。