对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中的多线程实例教程
Aug 27 Python
在Python的Django框架中包装视图函数
Jul 20 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
Python3 Random模块代码详解
Dec 04 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
Feb 13 Python
Python zip()函数用法实例分析
Mar 17 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
对python的bytes类型数据split分割切片方法
Dec 04 Python
Django管理员账号和密码忘记的完美解决方法
Dec 06 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
javascript基本算法汇总
2016/03/09 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
Python解惑之整数比较详解
2017/04/24 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
python中time包实例详解
2021/02/02 Python
10个顶级Python实用库推荐
2021/03/04 Python
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
计算机专业毕业生求职信分享
2013/12/24 职场文书
行政内勤岗位职责
2014/04/07 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
linux中nohup和后台运行进程查看及终止
2021/06/24 Python