在Python中os.fork()产生子进程的例子

yipeiwu_com6年前Python基础

例1

import os
print 'Process (%s) start...' %os.getpid()
pid = os.fork()
if pid==0:
  print 'I am child (%s) and my father is %s.'%(os.getpid(),os.getppid())
else:
  print 'I (%s) just created a child process (%s).' %(os.getpid(),pid)

加载os模块后,首先os.fork()函数生成一个子进程,返回值pid有两个,一个为0,

用以表示在子进程当中,一个是大于0的整数,表示在父进程,这个常数正是子进程的pid.

if pid == 0,在子进程当中os.getpid()是子进程的pid,os.getppid()是父进程pid

if pid >0 ,在父进程当中,os.getpid()是父进程的pid,os.fork()返回的就是子进程的pid

例2

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() 

以上这篇在Python中os.fork()产生子进程的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python绘制圆柱体的方法

python绘制圆柱体的方法

本文实例为大家分享了python绘制圆柱体示的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python import vtk # 参考的C++版本源码及解释...

python使用opencv按一定间隔截取视频帧

关于opencv OpenCV 是 Intel 开源计算机视觉库 (Computer Version) 。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多...

Python中内置数据类型list,tuple,dict,set的区别和用法

Python语言简洁明了,可以用较少的代码实现同样的功能。这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set。这里对他们进行一个简明的总结...

Python内置random模块生成随机数的方法

本文我们详细地介绍下两个模块关于生成随机序列的其他使用方法。 随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等。Pytho...

简单易懂Pytorch实战实例VGG深度网络

模型VGG,数据集cifar。对照这份代码走一遍,大概就知道整个pytorch的运行机制。 来源 定义模型: '''VGG11/13/16/19 in Pytorch.'''...