python fork函数

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

 

posted on 2018-02-25 22:41  hailuo  阅读(361)  评论(0编辑  收藏  举报