python中os.fork()函数的一点理解

【时间】2018.12.05

【题目】python中os.fork()函数的一点理解

1、功能:os.fork()函数用于在程序创建出新的进程分支,会从调用此函数的地方创建出子进程,调用后返回进程id,此id在原本的进程(即父进程)中是刚创建的子进程的id,而在刚创建出的子进程中是0.

python中os.fork()函数的一点理解

2、os.fork()只能在Linux中适用,若在windows系统中使用,会提示错误:os中没有‘fork’函数

python中os.fork()函数的一点理解

 

3.os.fork()函数会从调用此函数的地方创建出子进程,子进程会从此处继续运行下去,跟主进程一起,下面是测试代码:

import os

def child():

    print('Hello from child',  os.getpid())

def parent():

    for i in range(3):

        print(i)

        newpid = os.fork()

        if newpid == 0:

            child()

        else:

            print('Hello from parent', os.getpid(), newpid)



parent()

【运行结果】:

python中os.fork()函数的一点理解

其中,主进程10471分支除了子进程10472,10473,10474,其中子进程10472又分支出了子进程10475(之后分支出了子进程10477)与10476,子进程10473又分支出了子进程10478。