日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python进程join的用法_python 进程介绍 进程简单使用 join 验证空间隔离

發(fā)布時(shí)間:2023/12/4 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python进程join的用法_python 进程介绍 进程简单使用 join 验证空间隔离 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、多道程序設(shè)計(jì)技術(shù)(詳情參考:https://www.cnblogs.com/clschao/articles/9613464.html)

所謂多道程序設(shè)計(jì)技術(shù),就是指允許多個(gè)程序同時(shí)進(jìn)入內(nèi)存并運(yùn)行。即同時(shí)把多個(gè)程序放入內(nèi)存,并允許它們交替在CPU中運(yùn)行,它們共享系統(tǒng)中的各種硬、軟件資源。當(dāng)一道程序因I/O請求而暫停運(yùn)行時(shí),CPU便立即轉(zhuǎn)去運(yùn)行另一道程序。

在A程序計(jì)算時(shí),I/O空閑, A程序I/O操作時(shí),CPU空閑(B程序也是同樣);必須A工作完成后,B才能進(jìn)入內(nèi)存中開始工作,兩者是串行的,全部完成共需時(shí)間=T1+T2。

將A、B兩道程序同時(shí)存放在內(nèi)存中,它們在系統(tǒng)的控制下,可相互穿插、交替地在CPU上運(yùn)行:當(dāng)A程序因請求I/O操作而放棄CPU時(shí),B程序就可占用CPU運(yùn)行,這樣 CPU不再空閑,而正進(jìn)行A I/O操作的I/O設(shè)備也不空閑,顯然,CPU和I/O設(shè)備都處于“忙”狀態(tài),大大提高了資源的利用率,從而也提高了系統(tǒng)的效率,A、B全部完成所需時(shí)間<

多道程序設(shè)計(jì)技術(shù)不僅使CPU得到充分利用,同時(shí)改善I/O設(shè)備和內(nèi)存的利用率,從而提高了整個(gè)系統(tǒng)的資源利用率和系統(tǒng)吞吐量(單位時(shí)間內(nèi)處理作業(yè)(程序)的個(gè)數(shù)),最終提高了整個(gè)系統(tǒng)的效率。

單處理機(jī)系統(tǒng)中多道程序運(yùn)行時(shí)的特點(diǎn):

(1)多道:計(jì)算機(jī)內(nèi)存中同時(shí)存放幾道相互獨(dú)立的程序;

(2)宏觀上并行:同時(shí)進(jìn)入系統(tǒng)的幾道程序都處于運(yùn)行過程中,即它們先后開始了各自的運(yùn)行,但都未運(yùn)行完畢;

(3)微觀上串行:實(shí)際上,各道程序輪流地用CPU,并交替運(yùn)行。

空間上的復(fù)用:將內(nèi)存分為幾部分,每個(gè)部分放入一個(gè)程序,這樣,同一時(shí)間內(nèi)存中就有了多道程序。

時(shí)間上的復(fù)用:當(dāng)一個(gè)程序在等待I/O時(shí),另一個(gè)程序可以使用cpu,如果內(nèi)存中可以同時(shí)存放足夠多的作業(yè),則cpu的利用率可以接近100%

二、分時(shí)系統(tǒng)

由于CPU速度不斷提高和采用分時(shí)技術(shù),一臺(tái)計(jì)算機(jī)可同時(shí)連接多個(gè)用戶終端,而每個(gè)用戶可在自己的終端上聯(lián)機(jī)使用計(jì)算機(jī),好象自己獨(dú)占機(jī)器一樣。

分時(shí)技術(shù):把處理機(jī)的運(yùn)行時(shí)間分成很短的時(shí)間片,按時(shí)間片輪流把處理機(jī)分配給各聯(lián)機(jī)作業(yè)使用。

若某個(gè)作業(yè)在分配給它的時(shí)間片內(nèi)不能完成其計(jì)算,則該作業(yè)暫時(shí)中斷,把處理機(jī)讓給另一作業(yè)使用,等待下一輪時(shí)再繼續(xù)其運(yùn)行。由于計(jì)算機(jī)速度很快,作業(yè)運(yùn)行輪轉(zhuǎn)得很快,給每個(gè)用戶的印象是,好象他獨(dú)占了一臺(tái)計(jì)算機(jī)。而每個(gè)用戶可以通過自己的終端向系統(tǒng)發(fā)出各種操作控制命令,在充分的人機(jī)交互情況下,完成作業(yè)的運(yùn)行。

具有上述特征的計(jì)算機(jī)系統(tǒng)稱為分時(shí)系統(tǒng),它允許多個(gè)用戶同時(shí)聯(lián)機(jī)使用計(jì)算機(jī)。

特點(diǎn):

(1)多路性。若干個(gè)用戶同時(shí)使用一臺(tái)計(jì)算機(jī)。微觀上看是各用戶輪流使用計(jì)算機(jī);宏觀上看是各用戶并行工作。

(2)交互性。用戶可根據(jù)系統(tǒng)對請求的響應(yīng)結(jié)果,進(jìn)一步向系統(tǒng)提出新的請求。這種能使用戶與系統(tǒng)進(jìn)行人機(jī)對話的工作方式,明顯地有別于批處理系統(tǒng),因而,分時(shí)系統(tǒng)又被稱為交互式系統(tǒng)。

(3)獨(dú)立性。用戶之間可以相互獨(dú)立操作,互不干擾。系統(tǒng)保證各用戶程序運(yùn)行的完整性,不會(huì)發(fā)生相互混淆或破壞現(xiàn)象。

(4)及時(shí)性。系統(tǒng)可對用戶的輸入及時(shí)作出響應(yīng)。分時(shí)系統(tǒng)性能的主要指標(biāo)之一是響應(yīng)時(shí)間,它是指:從終端發(fā)出命令到系統(tǒng)予以應(yīng)答所需的時(shí)間。

分時(shí)系統(tǒng)的主要目標(biāo):對用戶響應(yīng)的及時(shí)性,即不至于用戶等待每一個(gè)命令的處理時(shí)間過長。

分時(shí)系統(tǒng)可以同時(shí)接納數(shù)十個(gè)甚至上百個(gè)用戶,由于內(nèi)存空間有限,往往采用對換(又稱交換)方式的存儲(chǔ)方法。即將未“輪到”的作業(yè)放入磁盤,一旦“輪到”,再將其調(diào)入內(nèi)存;而時(shí)間片用完后,又將作業(yè)存回磁盤(俗稱“滾進(jìn)”、“滾出“法),使同一存儲(chǔ)區(qū)域輪流為多個(gè)用戶服務(wù)。

多用戶分時(shí)系統(tǒng)是當(dāng)今計(jì)算機(jī)操作系統(tǒng)中最普遍使用的一類操作系統(tǒng)。

注意:分時(shí)系統(tǒng)的分時(shí)間片工作,在沒有遇到IO操作的時(shí)候就用完了自己的時(shí)間片被切走了,這樣的切換工作其實(shí)并沒有提高cpu的效率,反而使得計(jì)算機(jī)的效率降低了。為什么下降了呢?因?yàn)镃PU需要切換,并且記錄每次切換程序執(zhí)行到了哪里,以便下次再切換回來的時(shí)候能夠繼續(xù)之前的程序,雖然我們犧牲了一點(diǎn)效率,但是卻實(shí)現(xiàn)了多個(gè)程序共同執(zhí)行的效果,這樣你就可以在計(jì)算機(jī)上一邊聽音樂一邊聊qq了。

三、進(jìn)程 (詳情參考:https://www.cnblogs.com/clschao/articles/9629392.html?tdsourcetag=s_pctim_aiomsg)

1、進(jìn)程(Process)是計(jì)算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。

(在早期面向進(jìn)程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是程序的基本執(zhí)行實(shí)體;在當(dāng)代面向線程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是線程的容器。程序是指令、數(shù)據(jù)及其組織形式的描述,進(jìn)程是程序的實(shí)體。我們自己在python文件中寫了一些代碼,這叫做程序,運(yùn)行這個(gè)python文件的時(shí)候,這叫做進(jìn)程。)

2、狹義定義:進(jìn)程是正在運(yùn)行的程序的實(shí)例(an instance of a computer program that is being executed)。

廣義定義:進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程既是基本的分配單元,也是基本的執(zhí)行單元。

3、進(jìn)程的六大特征

動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序在多道程序系統(tǒng)中的一次執(zhí)行過程,進(jìn)程是動(dòng)態(tài)產(chǎn)生,動(dòng)態(tài)消亡的。

并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行

獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位;

異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)

結(jié)構(gòu)特征:進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。

多個(gè)不同的進(jìn)程可以包含相同的程序:一個(gè)程序在不同的數(shù)據(jù)集里就構(gòu)成不同的進(jìn)程,能得到不同的結(jié)果;但是執(zhí)行過程中,程序不能發(fā)生改變。

六大特征

程序是靜止的永久的,而進(jìn)程是暫時(shí)的。

4、進(jìn)程調(diào)度:要想多個(gè)進(jìn)程交替運(yùn)行,操作系統(tǒng)必須對這些進(jìn)程進(jìn)行調(diào)度,這個(gè)調(diào)度也不是隨即進(jìn)行的,而是需要遵循一定的法則,由此就有了進(jìn)程的調(diào)度算法。

進(jìn)程調(diào)度由操作系統(tǒng)完成。

四、進(jìn)程調(diào)度

要想多個(gè)進(jìn)程交替運(yùn)行,操作系統(tǒng)必須對這些進(jìn)程進(jìn)行調(diào)度,這個(gè)調(diào)度也不是隨即進(jìn)行的,而是需要遵循一定的法則,由此就有了進(jìn)程的調(diào)度算法。

先來先服務(wù)(FCFS)調(diào)度算法是一種最簡單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。FCFS算法比較有利于長作業(yè)(進(jìn)程),而不利于短作業(yè)(進(jìn)程)。由此可知,本算法適合于CPU繁忙型作業(yè),而不利于I/O繁忙型的作業(yè)(進(jìn)程)。

先來先服務(wù)調(diào)度算法

短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法(SJ/PF)是指對短作業(yè)或短進(jìn)程優(yōu)先調(diào)度的算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。但其對長作業(yè)不利;不能保證緊迫性作業(yè)(進(jìn)程)被及時(shí)處理;作業(yè)的長短只是被估算出來的。

短作業(yè)優(yōu)先調(diào)度算法

時(shí)間片輪轉(zhuǎn)(Round Robin,RR)法的基本思路是讓每個(gè)進(jìn)程在就緒隊(duì)列中的等待時(shí)間與享受服務(wù)的時(shí)間成比例。在時(shí)間片輪轉(zhuǎn)法中,需要將CPU的處理時(shí)間分成固定大小的時(shí)間片,例如,幾十毫秒至幾百毫秒。如果一個(gè)進(jìn)程在被調(diào)度選中之后用完了系統(tǒng)規(guī)定的時(shí)間片,但又未完成要求的任務(wù),則它自行釋放自己所占有的CPU而排到就緒隊(duì)列的末尾,等待下一次調(diào)度。同時(shí),進(jìn)程調(diào)度程序又去調(diào)度當(dāng)前就緒隊(duì)列中的第一個(gè)進(jìn)程。

顯然,輪轉(zhuǎn)法只能用來調(diào)度分配一些可以搶占的資源。這些可以搶占的資源可以隨時(shí)被剝奪,而且可以將它們再分配給別的進(jìn)程。CPU是可搶占資源的一種。但打印機(jī)等資源是不可搶占的。由于作業(yè)調(diào)度是對除了CPU之外的所有系統(tǒng)硬件資源的分配,其中包含有不可搶占資源,所以作業(yè)調(diào)度不使用輪轉(zhuǎn)法。

在輪轉(zhuǎn)法中,時(shí)間片長度的選取非常重要。首先,時(shí)間片長度的選擇會(huì)直接影響到系統(tǒng)的開銷和響應(yīng)時(shí)間。如果時(shí)間片長度過短,則調(diào)度程序搶占處理機(jī)的次數(shù)增多。這將使進(jìn)程上下文切換次數(shù)也大大增加,從而加重系統(tǒng)開銷。反過來,如果時(shí)間片長度選擇過長,例如,一個(gè)時(shí)間片能保證就緒隊(duì)列中所需執(zhí)行時(shí)間最長的進(jìn)程能執(zhí)行完畢,則輪轉(zhuǎn)法變成了先來先服務(wù)法。時(shí)間片長度的選擇是根據(jù)系統(tǒng)對響應(yīng)時(shí)間的要求和就緒隊(duì)列中所允許最大的進(jìn)程數(shù)來確定的。

在輪轉(zhuǎn)法中,加入到就緒隊(duì)列的進(jìn)程有3種情況:

一種是分給它的時(shí)間片用完,但進(jìn)程還未完成,回到就緒隊(duì)列的末尾等待下次調(diào)度去繼續(xù)執(zhí)行。

另一種情況是分給該進(jìn)程的時(shí)間片并未用完,只是因?yàn)檎埱驣/O或由于進(jìn)程的互斥與同步關(guān)系而被阻塞。當(dāng)阻塞解除之后再回到就緒隊(duì)列。

第三種情況就是新創(chuàng)建進(jìn)程進(jìn)入就緒隊(duì)列。

如果對這些進(jìn)程區(qū)別對待,給予不同的優(yōu)先級和時(shí)間片從直觀上看,可以進(jìn)一步改善系統(tǒng)服務(wù)質(zhì)量和效率。例如,我們可把就緒隊(duì)列按照進(jìn)程到達(dá)就緒隊(duì)列的類型和進(jìn)程被阻塞時(shí)的阻塞原因分成不同的就緒隊(duì)列,每個(gè)隊(duì)列按FCFS原則排列,各隊(duì)列之間的進(jìn)程享有不同的優(yōu)先級,但同一隊(duì)列內(nèi)優(yōu)先級相同。這樣,當(dāng)一個(gè)進(jìn)程在執(zhí)行完它的時(shí)間片之后,或從睡眠中被喚醒以及被創(chuàng)建之后,將進(jìn)入不同的就緒隊(duì)列。

時(shí)間輪片調(diào)度

前面介紹的各種用作進(jìn)程調(diào)度的算法都有一定的局限性。如短進(jìn)程優(yōu)先的調(diào)度算法,僅照顧了短進(jìn)程而忽略了長進(jìn)程,而且如果并未指明進(jìn)程的長度,則短進(jìn)程優(yōu)先和基于進(jìn)程長度的搶占式調(diào)度算法都將無法使用。

而多級反饋隊(duì)列調(diào)度算法則不必事先知道各種進(jìn)程所需的執(zhí)行時(shí)間,而且還可以滿足各種類型進(jìn)程的需要,因而它是目前被公認(rèn)的一種較好的進(jìn)程調(diào)度算法。在采用多級反饋隊(duì)列調(diào)度算法的系統(tǒng)中,調(diào)度算法的實(shí)施過程如下所述。

(1) 應(yīng)設(shè)置多個(gè)就緒隊(duì)列,并為各個(gè)隊(duì)列賦予不同的優(yōu)先級。第一個(gè)隊(duì)列的優(yōu)先級最高,第二個(gè)隊(duì)列次之,其余各隊(duì)列的優(yōu)先權(quán)逐個(gè)降低。該算法賦予各個(gè)隊(duì)列中進(jìn)程執(zhí)行時(shí)間片的大小也各不相同,在優(yōu)先權(quán)愈高的隊(duì)列中,為每個(gè)進(jìn)程所規(guī)定的執(zhí)行時(shí)間片就愈小。例如,第二個(gè)隊(duì)列的時(shí)間片要比第一個(gè)隊(duì)列的時(shí)間片長一倍,……,第i+1個(gè)隊(duì)列的時(shí)間片要比第i個(gè)隊(duì)列的時(shí)間片長一倍。

(2) 當(dāng)一個(gè)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊(duì)列的末尾,按FCFS原則排隊(duì)等待調(diào)度。當(dāng)輪到該進(jìn)程執(zhí)行時(shí),如它能在該時(shí)間片內(nèi)完成,便可準(zhǔn)備撤離系統(tǒng);如果它在一個(gè)時(shí)間片結(jié)束時(shí)尚未完成,調(diào)度程序便將該進(jìn)程轉(zhuǎn)入第二隊(duì)列的末尾,再同樣地按FCFS原則等待調(diào)度執(zhí)行;如果它在第二隊(duì)列中運(yùn)行一個(gè)時(shí)間片后仍未完成,再依次將它放入第三隊(duì)列,……,如此下去,當(dāng)一個(gè)長作業(yè)(進(jìn)程)從第一隊(duì)列依次降到第n隊(duì)列后,在第n 隊(duì)列便采取按時(shí)間片輪轉(zhuǎn)的方式運(yùn)行。

(3) 僅當(dāng)?shù)谝魂?duì)列空閑時(shí),調(diào)度程序才調(diào)度第二隊(duì)列中的進(jìn)程運(yùn)行;僅當(dāng)?shù)?~(i-1)隊(duì)列均空時(shí),才會(huì)調(diào)度第i隊(duì)列中的進(jìn)程運(yùn)行。如果處理機(jī)正在第i隊(duì)列中為某進(jìn)程服務(wù)時(shí),又有新進(jìn)程進(jìn)入優(yōu)先權(quán)較高的隊(duì)列(第1~(i-1)中的任何一個(gè)隊(duì)列),則此時(shí)新進(jìn)程將搶占正在運(yùn)行進(jìn)程的處理機(jī),即由調(diào)度程序把正在運(yùn)行的進(jìn)程放回到第i隊(duì)列的末尾,把處理機(jī)分配給新到的高優(yōu)先權(quán)進(jìn)程。

多級反饋調(diào)度

四、并發(fā)和并行

通過進(jìn)程之間的調(diào)度,也就是進(jìn)程之間的切換,我們用戶感知到的好像是兩個(gè)視頻文件同時(shí)在播放,或者音樂和游戲同時(shí)在進(jìn)行,那就讓我們來看一下什么叫做并發(fā)和并行

并發(fā):是偽并行,即看起來是同時(shí)運(yùn)行。單個(gè)cpu+多道技術(shù)就可以實(shí)現(xiàn)并發(fā),(并行也屬于并發(fā))

并行:同時(shí)運(yùn)行,只有具備多個(gè)cpu才能實(shí)現(xiàn)并行

五、同步、異步、阻塞、非阻塞(詳情參考:https://www.cnblogs.com/clschao/articles/9629392.html?tdsourcetag=s_pctim_aiomsg)

1、進(jìn)程三態(tài)

(1)就緒(Ready)狀態(tài)

當(dāng)進(jìn)程已分配到除CPU以外的所有必要的資源,只要獲得處理機(jī)便可立即執(zhí)行,這時(shí)的進(jìn)程狀態(tài)稱為就緒狀態(tài)。

(2)執(zhí)行/運(yùn)行(Running)狀態(tài)

當(dāng)進(jìn)程已獲得處理機(jī),其程序正在處理機(jī)上執(zhí)行,此時(shí)的進(jìn)程狀態(tài)稱為執(zhí)行狀態(tài)。

(3)阻塞(Blocked)狀態(tài)

正在執(zhí)行的進(jìn)程,由于等待某個(gè)事件發(fā)生而無法執(zhí)行時(shí),便放棄處理機(jī)而處于阻塞狀態(tài)。引起進(jìn)程阻塞的事件可有多種,例如,等待I/O完成、申請緩沖區(qū)不能滿足、等待信件(信號)等。

六、python 進(jìn)程

1、創(chuàng)建進(jìn)程的兩種方法

方法一:

from multiprocessing importProcess#定義執(zhí)行函數(shù)

deffunc1():pass

if __name__ == '__main__':#p=Process(target=func1,args=(10,)) #位置傳參

p=Process(target=func1,kwargs={"a":10,"b":20,})#關(guān)鍵字傳參

from multiprocessing importProcessimporttime,osdeffunc1():

time.sleep(2)print("我是func1")deffunc2():

time.sleep(2)print("子進(jìn)程pid>>>",os.getpid())print("子進(jìn)程的父進(jìn)程pid>>>", os.getppid())print("我是func2")if __name__ == '__main__':#查看當(dāng)前進(jìn)程pid

print("主進(jìn)程pid>>>",os.getpid()) #查看主進(jìn)程pid

print("主進(jìn)程父進(jìn)程pid>>>",os.getppid())#查看主程序父進(jìn)程

start_time=time.time()

p=Process(target=func2)#創(chuàng)建進(jìn)程

p.start() #就緒,告訴操作系統(tǒng)等待調(diào)度

func1()

end_time=time.time()

dif_time=end_time-start_timeprint("時(shí)間差>>>",dif_time)

模塊傳參創(chuàng)建進(jìn)程

方法二:

from multiprocessing importProcess#方法二

classMyProcess(Process):#引入Process中的屬性

def __init__(self,n): #n為傳入的參數(shù)

super().__init__()pass

if __name__ == '__main__':

p=MyProcess(10)

p.start()

importtimefrom multiprocessing importProcessclassMyProcess(Process):def __init__(self,n):

super().__init__()#引入父類的屬性進(jìn)行

self.n=ndefrun(self):

time.sleep(2)print("傳入的參數(shù)>>>",self.n)print("我是類創(chuàng)建的進(jìn)程")if __name__ == '__main__':

p=MyProcess(10)

p.start()

類方法創(chuàng)建進(jìn)程

2、進(jìn)程相關(guān)的功能

os.getpid( )? 表示獲取進(jìn)程的pid號

os.getppid() 表示獲取父進(jìn)程的pid號

p=Process(target= func1, args=( ,)) 創(chuàng)建一個(gè)進(jìn)程p,執(zhí)行函數(shù)為func1,函數(shù)參數(shù)為args

p.start() 就緒,等待操作系統(tǒng)開啟進(jìn)程和執(zhí)行進(jìn)程

p.join( ) 等待進(jìn)程p執(zhí)行完后,再繼續(xù)執(zhí)行

p.terminate() 關(guān)閉進(jìn)程,不會(huì)立即關(guān)閉,有個(gè)等待著操作系統(tǒng)去關(guān)閉這個(gè)進(jìn)程的時(shí)間

p.is_alive() 判斷進(jìn)程是否還存在,如果存在就返回True

p.pid( ) 查看pid

p.name() 查看pid名字

3、join 實(shí)例

importtimefrom multiprocessing importProcessdeffunc1(n,m):print('參數(shù)%s'%n)print(m)

time.sleep(2)print('我是func1')deffunc2():

time.sleep(3)print('我是func2')if __name__ == '__main__':

p1= Process(target=func1,args=(10,20,))#p1 = Process(target=func1,kwargs={'n':10,'m':20})

p2 = Process(target=func2)

p1.start()

p2.start()print('主進(jìn)程運(yùn)行到這里了')

p1.join()#等待1號子進(jìn)程運(yùn)行結(jié)束

p2.join()print('主進(jìn)程結(jié)束')

4、進(jìn)程空間隔離驗(yàn)證

思路:如果進(jìn)程能對全局變量進(jìn)行更改,就是進(jìn)程空間不能隔離,否則就是進(jìn)程空間隔離

from multiprocessing importProcess

num= 20

deffunc():globalnum

num= 10

print('子進(jìn)程的num>>>>',num)if __name__ == '__main__':

p= Process(target=func,)

p.start()

p.join()print('主進(jìn)程num:',num)

總結(jié)

以上是生活随笔為你收集整理的python进程join的用法_python 进程介绍 进程简单使用 join 验证空间隔离的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。