import os
import time
num = 0
pid = os.fork()
if pid == 0:
num+=1
print('哈哈1---num=%d,我的父进程号为%s,我的进程号为%s'%(num, os.getppid(), os.getpid()))
else:
#time.sleep(1)
num+=1
print('哈哈2---num=%d,我的进程号为%s'%(num,os.getpid()))
pid = os.fork()
if pid == 0:
num+=1
print('哈哈3---num=%d,我的父进程号为%s,我的进程号为%s'%(num, os.getppid(), os.getpid()))
else:
#time.sleep(1)
num+=1
print('哈哈4---num=%d,我的进程号为%s'%(num,os.getpid()))
我的电脑输出:
哈哈2---num=1,我的进程号为6551
哈哈4---num=2,我的进程号为6551
哈哈1---num=1,我的父进程号为6551,我的进程号为6552
哈哈3---num=2,我的父进程号为6551,我的进程号为6553
哈哈4---num=2,我的进程号为6552
哈哈3---num=2,我的父进程号为6552,我的进程号为6554
我的问题!
为什么下面的‘哈哈4’的进程号和上面的‘哈哈1’进程号是一样的,还有就是下面的‘哈哈3’的进程号为什么会比父进程号+2了?
第一次fork的时候,父进程会产生一个子进程1,第二fork的时候,父进程和子进程1又会各自再产生一个子进程。所以最后有4个进程,然后你对比log分析就明白了