以python代码解释fork系统调用

Posted 扫驴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以python代码解释fork系统调用相关的知识,希望对你有一定的参考价值。

import os

print(Process (%s) start... % os.getpid())
# Only works on Unix/Linux/Mac:
pid = os.fork()
print ("haha")
if pid == 0:
    print(I am child process (%s) and my parent is %s. % (os.getpid(), os.getppid()))
else:
    print(I (%s) just created a child process (%s). % (os.getpid(), pid))


"""
haha
haha
Process (876) start...
I (876) just created a child process (877).
I am child process (877) and my parent is 876.
"""

执行到os.fork()时,发起fork系统调用,操作系统复制父进程得到子进程。fork系统调用完毕,返回给父进程子进程的id号,返回给子进程0,然后父子进城开始执行。我们可以看到haha被打印了两次,更加说明了子进程是复制父进程得来的

以上是关于以python代码解释fork系统调用的主要内容,如果未能解决你的问题,请参考以下文章

操作系统实验2:fork()系统调用

python3 系统编程进程

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

fork函数详解(附代码)

解释器在解析JavaScript代码时对于这两种方式

Lab3:结合中断上下文切换和进程上下文切换分析Linux内核一般执行过程