Python multiprosesseringskø

Python multiprosesseringskø

Det mest avgjørende elementet i datastrukturen er køen. "First In, First Out" datastrukturkøen som er grunnlaget for Python Multiprocessing er sammenlignbar. Køer blir gitt til prosessfunksjonen for å tillate prosessen å samle inn dataene. Det første dataene som skal elimineres fra køen er det første elementet som blir lagt inn. Vi bruker køens "put ()" -metode for å legge til dataene i køen og dens "get ()" -metode for å hente dataene fra køen.

Eksempel 1: Bruke køen () -metoden for å lage en multiprosesseringskø i Python

I dette eksemplet oppretter vi en multiprosesseringskø i Python ved hjelp av "kø ()" -metoden. Multiprosessering refererer til bruk av en eller flere CPUer i et system for å utføre to eller flere prosesser samtidig. Multiprosessering, en konstruert modul i Python, letter veksling mellom prosesser. Vi må være kjent med prosessegenskapen før vi jobber med multiprosessering. Vi er klar over at køen er en avgjørende komponent i datamodellen. Standard datakø, som er bygget på ideen om "første-første-første-ut", og Python multiprosessing er eksakte kolleger. Generelt lagrer køen Python -objektet og er avgjørende for dataoverføring mellom oppgavene.

"Spyder" -verktøyet brukes til å implementere Python -skriptet, så la oss ganske enkelt komme i gang. Vi må først importere multiprosesseringsmodulen fordi vi kjører Python Multiprocessing -skriptet. Vi gjorde dette ved å importere multiprosesseringsmodulen som "M". Ved hjelp av “m.kø () ”-teknikk, vi påkaller multiprosessering av" kø () "-metoden. Her oppretter vi en variabel kalt "kø" og plasserer multiprosessering "kø ()" -metoden i den. Som vi vet at køen lagrer varer i en "første-inn, første-out" -rekkefølge, blir varen som vi legger til først fjernet først. Etter å ha lansert multiprosesseringskøen, kaller vi deretter "print ()" -metoden, og passerer utsagnet "Det er en multiprosesseringskø" som argument for å vise den på skjermen. Deretter, fordi vi lagrer den konstruerte køen i denne variabelen, skriver vi ut køen ved å passere "køen" -variabelen i parentesen til metoden "Print ()".


Følgende bilde viser at Python multiprosesseringskø nå er konstruert. Utskriftserklæringen vises først. Etter at denne multiprosesseringskøen er konstruert i den angitte minneadressen, kan den brukes til å overføre de distinkte dataene mellom to eller flere løpsprosesser.

Eksempel 2: Bruke metoden “Qsize ()” for å bestemme størrelsen på multiprosesseringskøen i Python

Vi bestemmer størrelsen på multiprosesseringskøen i dette tilfellet. For å beregne størrelsen på multiprosesseringskøen, bruker vi “Qsize ()” -metoden. "Qsize ()" -funksjonen returnerer den virkelige størrelsen på Python multiprosesseringskø. Med andre ord, denne metoden gir det totale antallet elementer i en kø.

La oss begynne med å importere Python Multiprocessing -modulen som "M" før du kjører koden. Deretter ved å bruke “m.kø () ”-kommando, vi påkaller multiprosessering av" kø () "-funksjonen og setter resultatet i" kø "-variabelen. Deretter bruker vi "Put ()" -metoden, legger vi elementene i køen i følgende linje. Denne metoden brukes til å legge til dataene i en kø. Derfor kaller vi "kø" med "put ()" -metoden og leverer heltallstallene som element i parentesen. Tallene som vi legger til er “1”, “2”, “3”, “4”, “5”, “6,” og “7” ved å bruke “Put ()” -funksjonene.

Videre, ved å bruke "kø" for å oppnå størrelsen på multiprosesseringskøen, kaller vi "Qsize ()" med multiprosesseringskøen. Deretter, i den nydannede "resultat" -variabelen, lagrer vi resultatet av "Qsize ()" -metoden. Etter det kaller vi metoden “Print ()” og passerer uttalelsen “Multiprocessing Quees størrelse er” som parameter. Deretter kaller vi "Resultat" -variabelen i "Print ()" -funksjonen siden størrelsen er lagret i denne variabelen.


Utgangsbildet har størrelsen vist. Når vi bruker "Put ()" -funksjonen for å legge til syv elementer i multiprosesseringskøen og "Qsize ()" -funksjonen for å bestemme størrelsen, vises multiprosesseringskøens størrelse "7". Inngangserklæringen “Størrelsen på multiprosesseringskøen” vises før størrelsen.

Eksempel 3: Bruke metoden “Put ()” og “Get ()” i Python Multiprocessing -køen

"Put ()" og "get ()" kømetoder fra Python multiprosesseringskø brukes i dette eksemplet. Vi utvikler to brukerdefinerte funksjoner i dette eksemplet. I dette eksemplet definerer vi en funksjon for å lage en prosess som produserer “5” tilfeldige heltall. Vi bruker også “Put ()” -metoden for å legge dem til i en kø. "Put ()" -metoden brukes til å plassere varene i køen. For å hente tallene fra køen og returnere verdiene sine, skriver vi en annen funksjon og kaller det under prosedyren. Vi bruker "get ()" -funksjonen for å hente tallene fra køen, siden denne metoden brukes til å hente dataene fra køen som vi setter inn ved hjelp av "Put ()" -metoden.

La oss begynne å implementere koden nå. Først importerer vi de fire bibliotekene som utgjør dette skriptet. Vi importerer først "søvn" fra tidsmodulen for å utsette utførelsen i noen tid målt i sekunder, etterfulgt av "tilfeldig" fra den tilfeldige modulen som brukes til å generere tilfeldige tall, deretter "prosess" fra multiprosessering fordi denne koden oppretter en prosess , og til slutt "køen" fra multiprosessering. Ved å begynne å konstruere en klasseforekomst, kan køen brukes. Som standard etablerer dette en uendelig kø eller en kø uten maksimal størrelse. Ved å sette alternativet maks størrelse til et tall som er større enn null, er det mulig å lage en skapelse med en størrelsesbegrensning.


Vi definerer en funksjon. Deretter, siden denne funksjonen er brukerdefinert, gir vi den navnet "Funksjon1" og passerer begrepet "kø" som argument. Etter det påkaller vi "print ()" -funksjonen, og passerer den "byggherren: løping", "flush" og objektet "sanne" uttalelser . Pythons utskriftsfunksjon har et unikt alternativ som heter Flush som lar brukeren velge om han skal buffer denne utgangen eller ikke. Neste trinn er å generere oppgaven. For å gjøre dette bruker vi “for” og lager variabelen “M” og setter rekkevidden til “5”. Deretter, i neste linje, bruk "tilfeldig ()" og lagre resultatet i variabelen vi laget som er "verdi.”Dette indikerer at funksjonen nå avslutter sine fem iterasjoner, med hver iterasjon som skaper et tilfeldig heltall fra 0 til 5.

Deretter kaller vi i det følgende trinn. Deretter kaller vi "køen" med "put ()" -metoden for å legge verdien til køen i hovedsak til køen. Brukeren blir da informert om at det ikke er noe videre arbeid som skal gjøres ved å påberope seg "køen.put () ”-metoden en gang til og passerer“ ingen ”-verdien. Deretter kjører vi “Print ()” -metoden, passerer "Builder: Ready" -uttalelsen sammen med "Flush" og sett den til "True".


Vi definerer nå en andre funksjon, "funksjon2", og tilordner nøkkelordet "kø" som argument til den. Deretter kaller vi "print ()" -funksjonen mens vi passerer rapporten sier "bruker: kjøring" og "flush" som er satt til "sant". Vi starter driften av “Function2” ved å bruke MS -tilstanden for å ta dataene ut av køen og legge dem i den nyopprettede "elementet" -variabelen. Deretter bruker vi "hvis" -tilstanden, "varen er ingen", for å avbryte sløyfen hvis tilstanden er sann. Hvis ingen vare er tilgjengelig, stopper det og ber brukeren om en. Oppgaven stopper sløyfen og slutter i dette tilfellet hvis varen som er hentet fra verdien er null. Deretter, i det følgende trinn, kaller vi "print ()" -funksjonen og gir "bruker: klar" -rapport og "flush = true" -parametere til den.


Deretter går vi inn i hovedprosessen ved å bruke "if-name = main_". Vi oppretter en kø ved å ringe "kø ()" -metoden og lagre den i "kø" -variabelen. Deretter oppretter vi en prosess ved å kalle brukerfunksjonen "Function2". For dette kaller vi "prosessen" -klassen. Inne i det passerer vi “Target = Function2” for å kalle funksjonen i prosessen, passere argumentet “kø” og lagre den i “user_process” -variabelen. Prosessen starter deretter med å kalle "start ()" -metoden med "bruker_ prosess" -variabelen. Vi gjentar deretter den samme prosedyren for å kalle "funksjon1" i prosessen og sette den i "Builder Process" -variabelen. Deretter kaller vi prosessene med metoden “Join ()” for å vente på utførelsen.


Nå som den blir presentert, kan du se uttalelsene fra begge funksjonene i utgangen. Den viser elementene som vi la til ved hjelp av "put ()" og "get ()" ved å bruke henholdsvis "get ()" -metodene.

Konklusjon

Vi lærte om Python multiprosesseringskø i denne artikkelen. Vi benyttet de gitte illustrasjonene. Til å begynne med beskrev vi hvordan du oppretter en kø i Python Multiprocessing ved hjelp av køen () -funksjonen. Deretter brukte vi “Qsize ()” -metoden for å bestemme køen . Vi brukte også køenes put () og få () metoder. Tidsmodulens søvnklasse og den tilfeldige klassen til den tilfeldige modulen ble begge diskutert i det siste eksemplet.