I datavetenskap terminologi , är en process som en instans av ett program i datorns minne . Dessa processer i minnet kan också leka andra processer. Programmeringsspråket Python , ungefär som andra språk som är lämpliga för att utveckla desktop programvara , erbjuder ett bibliotek för att underlätta skapandet och upprätthållandet av processer på ett datorsystem . Processer
När en användare startar ett program, t.ex. en webbläsare , blir programmet en pågående process i operativsystemet . Före avrättningen , bosatt ett program helt enkelt som data på hårddisken . När den körs , laddar operativsystemet programmet i huvudminnet , eller RAM . Alla program som körs ges utrymme i RAM av operativsystemet medan de kör . Medan du kör , övervakar operativsystemet ansökan processer genom en process tabell som beskriver tillståndet i processen och var den finns i minnet .
Lek Processer
processer spawn andra processer som syftar till att utföra samtidigt arbete under programkörning . Denna " multi " låter program för att hantera många olika uppgifter samtidigt . Ett program i Python , till exempel , kan leka en separat process med " multi-processing" biblioteket och dess " Process " objekt , som i följande exempel :
från multi- import Process
import os
def hello ( ) :
print ( ' Hej ' ) katalog
p = Process ( target = hej ) katalog
p.start ( ) //börjar barn process " p"
processer som gör arbete
Ett barn process , givet en viss uppgift , kommer att utföra denna uppgift, medan den överordnade processen utför sin egen uppgift . I följande exempel spawns ett Python -program en process , och både den överordnade processen och barnet processen anropa samma metod " os.getpid ( ) " , som returnerar den numeriska id för den aktuella processen :
def PID ( ) :
print ( " jag är Process : ' , os.getpid ( ) ) katalog
p = Process ( target = PID ) katalog
p.start ( )
print ( " jag är processen : " os.getpid ( ) ) katalog
p.join ( ) //avslutar "p" process
utgången av dessa två processer är följande. Observera att föräldern " print " -kommandot med gemener " processen " vanligtvis körs första
jag processen : . 57883
jag Process : 57884
Sharing Data mellan processer
två processer kan också dela data mellan varandra med ett " Pipe " objekt som skapar en förbindelse mellan de två processerna . Med hjälp av dessa anslutningsobjekt , kan ett barn process skicka data till en förälder process , så att den överordnade processen att manipulera eller skriva ut sparade data. I följande exempel visas användningen av Pipe objektet :
def send ( barn ) :
child.send ( [ 1 , 2 , 3 ] ) //barnet processen sänder data när verkställande
child.close ( ) katalog p Om __ name__ == ' __main__ ' :
förälder , barn = Pipe ( ) katalog
p = Process ( mål = f, args = ( barn , ) ) katalog
p.start ( ) katalog
print parent.recv ( ) //överordnade process tar emot data från barn
p.join Addera