python 的os.getpid()和os.fork()函数

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之后的下一行代码。父进程和子进程既并发执行,又相互独立;也就是说,它们是“异步执行”的。

  1. import os  
  2. pid=os.fork() #fork反复拷贝  
  3. if  pid==0:  
  4.     print("A",os.getpid(),os.getppid())  
  5. else:  
  6.     print("B",os.getpid(),os.getppid())  
  7.   
  8. # os.getpid()获取当前进程id     os.getppid()获取父进程id  

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
os.getpid()是一个Python函数,用于获取当前进程PID进程ID)。\[3\]它返回一个整数值。 os.getppid()也是一个Python函数,用于获取当前进程的主进程的PPID(父进程ID)。\[3\]它返回一个整数值。 在多进程编程中,每个进程都有自己的PID和PPIDPID进程的唯一标识符,而PPID是创建该进程的父进程PID。\[1\] \[3\] #### 引用[.reference_title] - *1* [python os.fork() os.getpid() os.getppid()](https://blog.csdn.net/GG_Fu/article/details/107497878)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [对python中的os.getpid()和os.fork()函数详解](https://blog.csdn.net/weixin_34539480/article/details/115757134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python模块os.getpidos.getppid在多进程中的应用](https://blog.csdn.net/LCY133/article/details/107151882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值