对python中的os.getpid()和os.fork()函数详解


Posted in Python onAugust 08, 2019

如下所示:

import os
import sys
import time
 
processNmae = 'parent'
 
print "Program executing ntpid:%d,processNmae:%s"%(os.gitpid(),processNmae)
 
#attempt to fork child process
try:
  forkPid = os.fork()
except OSError:
  sys.exit("Unable to create new process.")
 
# Am I parent process?
if forkPid != 0:
  print "Parent executingn"+"tpid:%d,forkPid:%d,processNmae:%s"%(os.getpid(), forkPID,processName)
 
# Am I child process?
elif forkPID == 0:
    processName = "child"
    print "Child executingn" + "tpid: %d, forkPID: %d, processName: %s" % (os.getpid(), forkPID,processName)<br>
print "Process finishingntpid: %d, processName: %s" % (os.getpid(), processName)

程序每次执行时,操作系统就会创建一个新的进程来运行程序指令。进程还可以调用os.fork,要求操作系统新建一个进程。

“父进程”是调用os.fork的进程。父进程所创建的任何进程都是子进程。

每个进程都有一个不重复的“进程ID号”,或称“pid”,它对进程进程进行标识。

进程调用fork函数时,操作系统会新建一个子进程,它本质上与父进程完全相同。子

进程从父进程继承了多个值的拷贝,比如全局变量和环境变量。两个进程唯一的区别就是fork的返回值。

child(子)进程接收返回值为0,而父进程接收子进程的pid作为返回值。调用fork函数后,两个进程并发执行同一个程序,

首先执行的是调用了fork之后的下一行代码。父进程和子进程既并发执行,又相互独立;也就是说,它们是“异步执行”的。

import os 
pid=os.fork() #fork反复拷贝 
if pid==0: 
  print("A",os.getpid(),os.getppid()) 
else: 
  print("B",os.getpid(),os.getppid()) 
 
# os.getpid()获取当前进程id   os.getppid()获取父进程id

以上这篇对python中的os.getpid()和os.fork()函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python装饰器decorator用法实例
Nov 10 Python
初步探究Python程序的执行原理
Apr 11 Python
python web框架学习笔记
May 03 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
Django中的Model操作表的实现
Jul 24 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
利用python中集合的唯一性实现去重
Feb 11 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
python适合做数据挖掘吗
Jun 16 Python
python OpenCV学习笔记
Mar 31 Python
PyTorch中的torch.cat简单介绍
Mar 17 Python
在Python中os.fork()产生子进程的例子
Aug 08 #Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 #Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 #Python
python批量修改ssh密码的实现
Aug 08 #Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 #Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 #Python
python按行读取文件并找出其中指定字符串
Aug 08 #Python
You might like
PHP的FTP学习(一)
2006/10/09 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
javascript中new关键字详解
2015/12/14 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
python简单实现计算过期时间的方法
2015/06/09 Python
python daemon守护进程实现
2016/08/27 Python
Python Django view 两种return的实现方式
2020/03/16 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
优秀毕业生找工作自荐信
2014/06/23 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS