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)
还没有任何评论哟~
