时间:2021-05-22
如下所示:
import osimport sysimport time processNmae = 'parent' print "Program executing ntpid:%d,processNmae:%s"%(os.gitpid(),processNmae) #attempt to fork child processtry: 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()函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
例1importosprint'Process(%s)start...'%os.getpid()pid=os.fork()ifpid==0:print'Iamc
方式一:os.fork()#-*-coding:utf-8-*-"""pid=os.fork()1.只用在Unix系统中有效,Windows系统中无效2.for
如下所示:#coding:utf-8importosimportpsutilimporttimedefwrite_pid():pid=os.getpid()fp
前面介绍了使用os.fork()函数实现多进程编程,该方法最明显的缺陷就是不适用于Windows系统。本节将介绍一种支持Python在Windows平台上创建新
先看下面这段代码:importosdefmain():foriinrange(0,2):os.fork()print'Hello'if__name__=='__