Advertisement

Python基础-fork/多进程/(Process, 进程池, Queue)(18)

阅读量:

fork

在Unix/Linux操作系统中,存在一个具有独特性质的系统函数fork()。

  • 一般的函数调用方式为执行一次并返回一次,而fork()函数则不同,其调用一次却会返回两次。这是由于操作系统会自动将当前进程(即父进程)复制出一份作为子进程,并分别在父进程和子进程中返回结果。
  • 子进程在调用后始终返回0,而父进程则返回其子进程的标识符。
  • 父进程可以通过多次调用fork()生成多个子进程。因此,父进程需要记录每一个子进程的标识符,而子进程只需通过调用getppid()即可获取其父进程的ID。此外,getpid()函数可用于获取当前运行进程的ID。
  • 父进程与子进程之间的执行顺序并不固定,这完全由操作系统的调度策略所决定。
复制代码
    #只能在Linux和unix系统下运行
    import os
    pid=os.fork()
    if pid<0:
    print('fork失败')
    elif pid==0: #子进程运行
    print('子进程%s父进程%s'%(os.getpid(),os.getppid()))
    else:#父进程运行
    print('父进程%s子进程%s' % (os.getpid(), pid))
    print('父子进程都可以执行')
    

全部评论 (0)

还没有任何评论哟~