python fork()函数生成子进程的完整代码

python fork()函数生成子进程的完整代码,第1张

概述python fork()函数生成进程的完整代码 对python这个高级语言感兴趣的小伙伴,下面一起跟随内存溢出 jb51.cc的小编两巴掌来看看吧!

python的os module中有fork()函数用于生成子进程,生成的子进程是父进程的镜像,但是它们有各自的地址空间,子进程复制一份父进程内存给自己,两个进程之 间的执行是相互独立的,其执行顺序可以是不确定的、随机的、不可预测的,这点与多线程的执行顺序相似。

# @param python中fork()函数生成子进程分析# @author 内存溢出 jb51.cc|jb51.cc import osdef child():    print 'A new child:',os.getpID()    print 'Parent ID is:',os.getppID()    os._exit(0)def parent():    while True:        newpID=os.fork()        print newpID        if newpID==0:            child()        else:            pIDs=(os.getpID(),newpID)            print "parent:%d,child:%d"%pIDs            print "parent parent:",os.getppID()               if raw_input()=='q':            breakparent()# End www.jb51.cc

在我们加载了os模块之后,我们parent函数中fork()函数生成了一个子进程,返回值newpID有两个,一个为0,用以表示子进程,一个是大于 0的整数,用以表示父进程,这个常数正是子进程的pID. 通过print语句我们可以清晰看到两个返回值。如果fork()返回值是一个负值,则表明子进程生成不成功(这个简单程序中没有考虑这种情况)。如果 newpID==0,则表明我们进入到了子进程,也就是child()函数中,在子进程中我们输出了自己的ID和父进程的ID。如果进入了else语句, 则表明newpID>0,我们进入到父进程中,在父进程中os.getpID()得到自己的ID,fork()返回值newpID表示了子进程的ID,同时我们输出了父进程的父进程的ID. 通过实验我们可以看到if和else语句的执行顺序是不确定的,子、父进程的执行顺序由 *** 作系统的调度算法来决定。

总结

以上是内存溢出为你收集整理的python fork()函数生成子进程的完整代码全部内容,希望文章能够帮你解决python fork()函数生成子进程的完整代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存