摘要:程序執(zhí)行到時,操作系統(tǒng)會創(chuàng)建一個新進程子進程,并把父進程的所有信息賦值到子進程中。多次可發(fā)現(xiàn)父子進程執(zhí)行順序沒有規(guī)律,完全取決于操作系統(tǒng)的調(diào)度算法。
上一篇文章: Python進程專題總覽篇
下一篇文章:Python進程專題2:multiprocessing創(chuàng)建進程
該方法只能在unix/Linux/Mac上運行,windows不可以運行。程序執(zhí)行到fork()時,操作系統(tǒng)會創(chuàng)建一個新進程(子進程),并把父進程的所有信息賦值到子進程中。
這個方法很特殊,會有兩次返回,分別在子進程和父進程返回一次,子進程永遠返回0,父進程返回進程的id.
getpid():返回當(dāng)前進程的id
getppid():返回當(dāng)前進程父進程的id。
實例:
import os id=os.fork() index=0 if id<0: print("子進程創(chuàng)建失敗了") elif id==0: index+=1 print("我是子進程(%d),我的父進程是:%d,index=%d"%(os.getpid(),os.getppid(),index)) else: index += 1 print("我是父進程:%d,我的子進程是:%d,index=%d"%(os.getpid(),id,index))
結(jié)果:
我是父進程:9735,我的子進程是:9736,index=1 我是子進程(9736),我的父進程是:9735,index=1
從上面實例也可以看出:每個進程的所有數(shù)據(jù)(包括全局變量)都各持一份,互不影響。
多次fork()可發(fā)現(xiàn):父子進程執(zhí)行順序沒有規(guī)律,完全取決于操作系統(tǒng)的調(diào)度算法。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42331.html
摘要:類常用屬性布爾值,指示進程是否是后臺進程。當(dāng)創(chuàng)建它的進程終止時,后臺進程會自動終止。進程的整數(shù)退出指令。如果進程仍然在運行,它的值為,如果值為負數(shù),就表示進程由信號所終止。 上一篇文章:Python進程專題1:fork():創(chuàng)建子進程、getpid()、getppid()下一篇文章:Python進程專題3:繼承Process來創(chuàng)建進程 由于fork()無法對Windows使用,而py...
摘要:多進程的方式可以增加腳本的并發(fā)處理能力,支持這種多進程的編程方式在類系統(tǒng)中,的模塊內(nèi)置了函數(shù)用以創(chuàng)建子進程方式創(chuàng)建子進程執(zhí)行結(jié)果從結(jié)果可以看到,從開始,下面的部分代碼運行了兩次,第一次是父進程運行,第二次是子進程運行,且子進程的的結(jié)果總是, 多進程的方式可以增加腳本的并發(fā)處理能力, python 支持這種多進程的編程方式 在類unix系統(tǒng)中, python的os 模塊內(nèi)置了fork 函...
摘要:主進程會等待所有的子進程先結(jié)束,然后再結(jié)束主進程。關(guān)閉進程池,關(guān)閉后實例不再接收新的請求等待實例中的所有子進程執(zhí)行完畢,主進程才會退出,必須放在語句之后。主進程一般都用來等待,任務(wù)在子進程中執(zhí)行。 多任務(wù):同一個時間段中,執(zhí)行多個函數(shù)/運行多個程序. 操作系統(tǒng)可以同時運行多個任務(wù):操作系統(tǒng)輪流讓各個任務(wù)交替執(zhí)行,任務(wù)1執(zhí)行0.01秒,切換到任務(wù)2,任務(wù)2執(zhí)行0.01秒,再切換到任務(wù)3,...
摘要:近年來,人工智能的興起使得更加火爆了。獲取當(dāng)前進程父進程的。但是唯一遺憾的是,函數(shù)只能在系統(tǒng)中使用,不能在系統(tǒng)中使用。因此在下,需要將其包含在中。則是立即返回一個可迭代對象。則是返回可迭代函數(shù)。 Python一直是一門對初學(xué)者非常友好的語言,在數(shù)據(jù)分析、Web 開發(fā)、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)爬蟲等方面應(yīng)用廣泛。近年來,人工智能的興起使得 Python 更加火爆了。 我們在處理大量數(shù)據(jù)或者需要快速...
摘要:一個進程,通常是從上往下逐條語句執(zhí)行,這對正常人來說都比較好理解,但是當(dāng)遇到多進程時,雖然在每個進程內(nèi)還是逐句執(zhí)行,但是這個應(yīng)用程序,體現(xiàn)出出來的就不是逐句執(zhí)行了,這也是多進程多線程難以理解的原因。 上一篇文章:Python垃圾回收詳解下一篇文章:Python進程專題1:fork():創(chuàng)建子進程、getpid()、getppid() 多進程就是同時進行多項任務(wù),一個程序就可以看成是一...
閱讀 7629·2023-04-25 14:36
閱讀 1753·2021-11-22 09:34
閱讀 2146·2019-08-30 15:55
閱讀 3144·2019-08-30 11:19
閱讀 1305·2019-08-29 15:17
閱讀 548·2019-08-29 12:47
閱讀 2990·2019-08-26 13:38
閱讀 2625·2019-08-26 11:00