• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 简单分析Python中用fork()函数生成的子进程

简单分析Python中用fork()函数生成的子进程

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了python os.fork,python fork,fork创建子进程,fork进程,fork子进程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

import os
def 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':
      break
parent()
</div>

    在我们加载了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语句的执行顺序是不确定的,子、父进程的执行顺序由操作系统的调度算法来决定。

</div>

您可能想查找下面的文章:

  • python创建进程fork用法
  • 简单分析Python中用fork()函数生成的子进程
  • 小结Python用fork来创建子进程注意事项

相关文章

  • python求素数示例分享
  • Python标准库06之子进程 (subprocess包) 详解
  • python文件写入实例分析
  • Python中函数参数设置及使用的学习笔记
  • Python 中的 else详解
  • python将xml xsl文件生成html文件存储示例讲解
  • python实现爬虫下载美女图片
  • python基础教程之基本数据类型和变量声明介绍
  • Python深入学习之特殊方法与多范式
  • Python中使用gzip模块压缩文件的简单教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python编程-将Python程序转化为可执行程序[整理]
    • Python利用operator模块实现对象的多级排序详解
    • python实现超简单端口转发的方法
    • 在Python的Flask框架中验证注册用户的Email的方法
    • 利用pyinstaller或virtualenv将python程序打包详解
    • 在Python程序中操作文件之isatty()方法的使用教程
    • Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
    • 深入解析Python中的上下文管理器
    • 举例讲解Python中的算数运算符的用法
    • 在Python 3中实现类型检查器的简单方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有