您好,登錄后才能下訂單哦!
如下所示:
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()函數詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。