对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中的join()方法的使用
May 19 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
Python tkinter label 更新方法
Oct 11 Python
python 文件查找及内容匹配方法
Oct 25 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
python 生成器和迭代器的原理解析
Oct 12 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 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抓取页面的几种方法详解
2013/06/17 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
Python基于execjs运行js过程解析
2020/11/27 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
会计专业自我鉴定范文
2013/12/29 职场文书
汽车技术服务英文求职信范文
2014/01/02 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
教导处工作制度
2014/01/18 职场文书
优秀部门获奖感言
2014/02/14 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
举起手来观后感
2015/06/09 职场文书
孟佩杰观后感
2015/06/17 职场文书
导游词之湖州-太湖
2019/10/11 职场文书