I informatikk terminologi , er en prosess det kjører forekomster av et program i datamaskinens minne . Disse prosessene i minnet kan også gyte andre prosesser . Programmeringsspråket Python , mye som andre språk egnet for utvikling av desktop programvare , tilbyr et bibliotek til rette for etablering og vedlikehold av prosesser på et datasystem . Prosesser
Når en bruker starter et program som for eksempel en nettleser , blir programmet en løpende prosess i operativsystemet . Før henrettelsen , ligger et program bare som data på harddisken . Når henrettet , laster operativsystemet programmet i hovedminnet , eller RAM . Alle kjørende programmer er gitt plass i RAM av operativsystemet mens de kjører . Mens du kjører , overvåker operativsystemet søknadsprosessene gjennom en prosess tabell som beskriver tilstanden i prosessen og hvor den ligger i minnet .
Spawning Prosesser
Prosesser kan gyte andre prosesser som skal utføre samtidige arbeid under utføring av programmet . Denne " flerprosessering " gjør at programmer kan håndtere mange ulike oppgaver samtidig . Et program i Python , for eksempel , kan gyte en egen prosess ved hjelp av " multiprosessering " bibliotek og dens " Process" objekt, som i følgende eksempel : en
fra multiprosessering import Process
import os
def hei ( ) : en
print (' Hei ')
p = Process ( target = hei)
p.start () //begynner barnet prosessen "p"
Prosesser gjøre arbeid
Et barn prosess , gitt en oppgave , vil utføre denne oppgaven , mens den overordnede prosessen utfører sin egen oppgave . I følgende eksempel gyter et Python -program en prosess , og både den overordnede prosessen og barnet prosessen kaller den samme metoden " os.getpid ( ) ", som gir det numeriske id av den nåværende prosessen : en
def PID ( ) : en
print (' jeg er Process :', os.getpid ( ) )
p = Process ( target = PID)
p.start ( )
print (' jeg er prosessen: ' , os.getpid ( ) )
p.join () //slutter "p" prosessen
utgangen av disse to prosesser er som følger. Merk at foreldrene "print" -kommandoen med små bokstaver "prosessen" vanligvis går først
Jeg er prosessen: . 57883
jeg Prosess: 57884
Sharing data mellom prosesser
to prosesser kan også dele data mellom hverandre med en " Pipe " objekt som skaper en forbindelse mellom de to prosessene . Ved hjelp av disse tilkoblingsobjekter , kan et barn prosess sende data til en overordnet prosess , slik at den overordnede prosessen for å manipulere eller skrive ut de lagrede dataene . Følgende eksempel viser bruken av Pipe objekt : en
def send ( barn ) : en
child.send ( [ 1 , 2 , 3 ] ) //barnet prosessen sender data når utføring
child.close ( )
hvis __ name__ == ' __main__ ' : en
foreldre, barn = Pipe ( )
p = Process ( target = f, args = ( barn , ) )
p.start ( )
print parent.recv () //overordnede prosessen mottar data fra barn
p.join