我正在尝试使用CPython 3.7.2进行os.fork
函数
这是示例
def main():
data = 222
childPid = os.fork()
if childPid == -1:
print('error on fork child')
elif childPid == 0:
data *= 3
else:
time.sleep(3)
print("PID=%d data=%d" % (os.getpid(), data))
当我使用C语言时,我总是为父母和孩子获得2个连续的PID。
但是在python中,我总是得到不连续的PID(例如,在这里我得到了21475
和21442
)。
PID=21475 data=666
PID=21442 data=222
不明白它的行为方式是否相同。
答案 0 :(得分:5)
如果在测试C代码时看到连续的PID,那是因为您碰巧没有遇到正在使用的PID。 C语言的fork()
和Python语言的os.fork()
之间的行为应该没有区别。