对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批量同步web服务器代码核心程序
Sep 01 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python实现按中文排序的方法示例
Apr 25 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
对python中assert、isinstance的用法详解
Nov 27 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
python中time.ctime()实例用法
Feb 03 Python
python链表类中获取元素实例方法
Feb 23 Python
分享Python异步爬取知乎热榜
Apr 12 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
mysql limit查询优化分析
2008/11/12 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
vue时间格式化实例代码
2017/06/13 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
微信小程序如何实现全局重新加载
2019/06/05 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Python模块WSGI使用详解
2018/02/02 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
工程监理应届生求职信
2013/11/09 职场文书
土木工程个人自荐信范文
2013/11/30 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
保安公司服务承诺书
2014/05/28 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
酒店开业主持词
2015/07/02 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js