import os print('---父进程id:%s----'%(os.getpid())) pid=os.fork()#只能在liunx环境下执行 print('---%s---' % (os.getpid())) if pid==0: print('我是子进程%s,父进程%s' % (os.getpid(),os.getppid())) else: print('父进程%s,我创建的子进程%s'% (os.getpid(),pid))
输出效果如下:
---父进程id:30181----
---30181---
父进程30181,我创建的子进程30182
---30182---
我是子进程30182,父进程30181
说明:
要了解多进程,先来了解操作系统。在类linux操作系统上,操作系统提供一个fork()系统调用。这个函数和普通的函数不太一样。普通的函数调用一次返回一次,fork()函数调用一次返回两次,为什么呢?因为操作系统自动把当前进程【父进程】复制了一份【子进程】,然后分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID,这样做是因为父进程可以fork出很多子进程,父进程需要记住每个子进程的ID,而子进程只需要调用getppid()函数就可以拿到父进程的ID