对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中定义结构体的方法
Mar 04 Python
python中bisect模块用法实例
Sep 25 Python
Python中的面向对象编程详解(下)
Apr 13 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
python实现批量修改文件名代码
Sep 10 Python
django 在原有表格添加或删除字段的实例
May 27 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 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
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
详解jQuery事件
2017/01/13 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python实时获取cmd的输出
2015/12/13 Python
详解python单例模式与metaclass
2016/01/15 Python
速记Python布尔值
2017/11/09 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python如何读写json数据
2018/03/21 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
销售代表求职自荐信
2013/10/01 职场文书
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
幼儿教师培训感言
2014/03/08 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
商务考察邀请函模板
2015/02/02 职场文书
2015年党总支工作总结
2015/05/25 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
会计做账心得体会
2016/01/22 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python