对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 相关文章推荐
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
Python设计模式之策略模式实例详解
Jan 21 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
Python排序函数的使用方法详解
Dec 11 Python
Python基础数据类型tuple元组的概念与用法
Aug 02 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--用万网的接口实现域名查询功能
2012/12/13 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
Python随机生成数模块random使用实例
2015/04/13 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python数据归一化及三种方法详解
2019/08/06 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
软件测试题目
2013/02/27 面试题
护士自荐信
2013/10/25 职场文书
政府门卫岗位职责
2014/04/29 职场文书
利用js实现简单开关灯代码
2021/11/23 Javascript