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

yipeiwu_com5年前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设计】。

相关文章

将matplotlib绘图嵌入pyqt的方法示例

我的终极整理,供参考 # coding:utf-8 import matplotlib # 使用 matplotlib中的FigureCanvas (在使用 Qt5 Backends...

Python开发之快速搭建自动回复微信公众号功能

Python开发之快速搭建自动回复微信公众号功能

在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天机器人微信订阅号 中用 aiml 实现了一个简单的英文聊天机器人订阅号。但是只能处理英文消息,现在用 图灵机器人...

Python探索之修改Python搜索路径

当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块。可以通过sys.path查看这些路径,比如: >>> import sys...

深入浅析Python中的yield关键字

前言 python中有一个非常有用的语法叫做生成器,所利用到的关键字就是yield。有效利用生成器这个工具可以有效地节约系统资源,避免不必要的内存占用。 一段代码 def fun()...

Python利用matplotlib生成图片背景及图例透明的效果

Python利用matplotlib生成图片背景及图例透明的效果

前言 最近工作中遇到一个需求,在使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,通过查找相关资料找到了大概的设置方法,特此记录,方便自己或者有需要的朋友们参考...