對(duì)python中的os.getpid()和os.fork()函數(shù)詳解
如下所示:
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)
程序每次執(zhí)行時(shí),操作系統(tǒng)就會(huì)創(chuàng)建一個(gè)新的進(jìn)程來運(yùn)行程序指令。進(jìn)程還可以調(diào)用os.fork,要求操作系統(tǒng)新建一個(gè)進(jìn)程。
“父進(jìn)程”是調(diào)用os.fork的進(jìn)程。父進(jìn)程所創(chuàng)建的任何進(jìn)程都是子進(jìn)程。
每個(gè)進(jìn)程都有一個(gè)不重復(fù)的“進(jìn)程ID號(hào)”,或稱“pid”,它對(duì)進(jìn)程進(jìn)程進(jìn)行標(biāo)識(shí)。
進(jìn)程調(diào)用fork函數(shù)時(shí),操作系統(tǒng)會(huì)新建一個(gè)子進(jìn)程,它本質(zhì)上與父進(jìn)程完全相同。子
進(jìn)程從父進(jìn)程繼承了多個(gè)值的拷貝,比如全局變量和環(huán)境變量。兩個(gè)進(jìn)程唯一的區(qū)別就是fork的返回值。
child(子)進(jìn)程接收返回值為0,而父進(jìn)程接收子進(jìn)程的pid作為返回值。調(diào)用fork函數(shù)后,兩個(gè)進(jìn)程并發(fā)執(zhí)行同一個(gè)程序,
首先執(zhí)行的是調(diào)用了fork之后的下一行代碼。父進(jìn)程和子進(jìn)程既并發(fā)執(zhí)行,又相互獨(dú)立;也就是說,它們是“異步執(zhí)行”的。
import os pid=os.fork() #fork反復(fù)拷貝 if pid==0: print("A",os.getpid(),os.getppid()) else: print("B",os.getpid(),os.getppid()) # os.getpid()獲取當(dāng)前進(jìn)程id os.getppid()獲取父進(jìn)程id
以上這篇對(duì)python中的os.getpid()和os.fork()函數(shù)詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python for循環(huán)通過序列索引迭代過程解析
這篇文章主要介紹了Python for循環(huán)通過序列索引迭代過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02基于Python實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于Python實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07python處理multipart/form-data的請(qǐng)求方法
今天小編就為大家分享一篇python處理multipart/form-data的請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12基于Python實(shí)現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn)
這篇文章主要介紹了基于Python實(shí)現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn),mui最接近原生APP體驗(yàn)的高性能前端框架,MUI側(cè)滑常見的場(chǎng)景有下拉刷新,側(cè)滑抽屜,側(cè)滑刪除,側(cè)滑返回以及側(cè)滑菜單等等,下面來看看文章內(nèi)容詳細(xì)的介紹,需要的朋友可以參考一下2021-11-11Python實(shí)現(xiàn)批量把SVG格式轉(zhuǎn)成png、pdf格式的代碼分享
這篇文章主要介紹了Python實(shí)現(xiàn)批量把SVG格式轉(zhuǎn)成png、pdf格式的代碼分享,本文代碼需要引用一個(gè)第三方模塊cairosvg,需要的朋友可以參考下2014-08-08用 Python 爬了爬自己的微信朋友(實(shí)例講解)
下面小編就為大家?guī)硪黄?Python 爬了爬自己的微信朋友(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08