gpt4 book ai didi

python os.fork子进程ID不连续

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:09 26 4
gpt4 key购买 nike

我正在尝试使用 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(例如这里我得到 2147521442)。

PID=21475 data=666
PID=21442 data=222

不明白它的行为不一样。

最佳答案

不保证 PID 是连续的,尽管它们通常是(在 Linux 上)。如果 PID 已被使用,它将被跳过。

如果您在测试 C 代码时看到连续的 PID,那是因为您碰巧没有遇到正在使用的 PID。 C 中的 fork() 和 Python 中的 os.fork() 在行为上应该没有区别。

关于python os.fork子进程ID不连续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54015106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com