Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Keď používateľ začne aplikácie , ako je webový prehliadač , aplikácia sa stáva bežiaci proces v operačnom systéme . Pred vykonaním , program jednoducho žije ako dáta na pevnom disku . Po spustení operačného systému načíta program do hlavnej pamäte , alebo RAM . Všetky spustené aplikácie sú uvedené priestor v RAM operačný systém , zatiaľ čo oni beží . Zatiaľ čo beží , operačný systém monitoruje procesy aplikácií cez procesné tabuľke , ktorá popisuje stav procesu a kde je umiestnená v pamäti .
Reprodukujúce sa procesy
procesy môžu plodiť ďalšie procesy , ktoré majú vykonávať súbežné prácu počas vykonávania programu . Tento " multiprocesing " umožňuje programom zvládnuť mnoho rôznych úloh naraz . Program v Pythone , napríklad , môže plodiť samostatný proces pomocou " multiprocessing " knižnicu a jej " Process " objekt , ako v nasledujúcom príklade :
z multiprocessing procesu importu
dovozné os
def ahoj ( ) :
print ( " ahoj " )
p = Process ( target = ahoj )
p.start ( ) //začína dieťa proces " p "
procesy robiť prácu
dieťa proces , vzhľadom k tomu nejakú úlohu , bude plniť túto úlohu , zatiaľ čo nadradený proces vykonáva svoju vlastnú úlohu . V nasledujúcom príklade programu Python spúšťa proces , a to ako nadradený proces a dieťa proces volať rovnaké metódy " os.getpid ( ) " , ktorý vracia číselnú id aktuálneho procesu :
def PID ( ) :
print ( " Som Process : " os.getpid ( ) )
p = Process ( target = PID )
p.start ( )
print ( " Som procesu : " os.getpid ( ) )
p.join ( ) //končí " P " proces
výkon týchto dva procesy je nasledujúci . Všimnite si , že rodič " print " Príkaz s " procesom " malým zvyčajne spúšťa prvý
Som postup : . 57883
Som Process : 57884
zdieľanie dát medzi procesmi
dva procesy môžu tiež zdieľať dáta medzi sebou s " potrubia " objekt , ktorý vytvára spojenie medzi dvoma procesmi . Pomocou týchto objektov pripojenia , môže dieťa proces odosielania dát do nadradeného procesu , ktorý umožňuje nadradený proces manipulovať alebo tlač uložených dát . Nasledujúci príklad ukazuje použitie objektu potrubia :
def odoslanie ( dieťa ) :
child.send ( [ 1 , 2 , 3 ] ) //dieťa proces odosiela dáta , kedy vykonávanie
child.close ( )
if __ name__ == " __main__ " :
rodič , dieťa = Trubka ( )
p = Process ( cieľová = f , args = ( dieťa , ) )
p.start ( )
tlač parent.recv ( ) //rodič procesu prijíma dáta z dieťaťa
p.join