Python multiprosesseringskø

Python Multiprosesseringsko



Det mest avgjørende elementet i datastrukturen er køen. 'Først inn, først ut' datastrukturkøen som er grunnlaget for Python multiprosessering er sammenlignbar. Det gis køer til prosessfunksjonen for å tillate at prosessen samler inn data. Det første elementet med data som skal elimineres fra køen er det første elementet som legges inn. Vi bruker køens «put()»-metode for å legge til data i køen og «get()»-metoden for å hente data fra køen.

Eksempel 1: Bruk av Queue()-metoden for å opprette en multiprosesseringskø i Python

I dette eksemplet lager vi en multiprosesseringskø i Python ved å bruke 'queue()'-metoden. Multiprosessering refererer til bruken av en eller flere CPUer i et system for å utføre to eller flere prosesser samtidig. Multiprocessing, en konstruert modul i Python, forenkler bytte mellom prosesser. Vi må være kjent med prosessegenskapen før vi arbeider med multiprosessering. Vi er klar over at køen er en avgjørende komponent i datamodellen. Standard datakøen, som er bygget på 'First-In-First-Out'-ideen, og Python-multiprosessering er eksakte motstykker. Generelt lagrer køen Python-objektet og er avgjørende for dataoverføring mellom oppgaver.







«Spyder»-verktøyet brukes til å implementere Python-skriptet, så la oss bare komme i gang. Vi må først importere multiprosesseringsmodulen fordi vi kjører Python-multiprosesseringsskriptet. Vi gjorde dette ved å importere multiprosesseringsmodulen som «m». Ved å bruke 'm.queue()'-teknikken påkaller vi multiprosesseringsmetoden 'queue()'. Her lager vi en variabel kalt 'kø' og plasserer multiprosesseringsmetoden 'kø()' i den. Siden vi vet at køen lagrer varer i en 'først inn, først ut'-rekkefølge, fjernes varen som vi legger til først. Etter å ha startet multiprosesseringskøen, kaller vi 'print()'-metoden, og sender setningen '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 å sende 'kø'-variabelen i parentesen til 'print()'-metoden.




Følgende bilde viser at Python-multiprosesseringskøen nå er konstruert. Den trykte erklæ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 kjørende prosesser.







Eksempel 2: Bruk av «Qsize()»-metoden 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 reelle størrelsen på Python-multiprosesseringskøen. Med andre ord gir denne metoden det totale antallet varer i en kø.

La oss begynne med å importere Python-multiprosesseringsmodulen som 'm' før du kjører koden. Deretter, ved å bruke 'm.queue()'-kommandoen, starter vi multiprosesseringsfunksjonen 'queue()' og legger resultatet i 'Queue'-variabelen. Deretter, ved å bruke 'put()'-metoden, legger vi til elementene i køen på følgende linje. Denne metoden brukes til å legge til data i en kø. Derfor kaller vi 'Queue' med 'put()'-metoden og oppgir heltallene som element i parentesen. Tallene vi legger til er '1', '2', '3', '4', '5', '6' og '7' ved å bruke 'put()'-funksjonene.



Videre, ved å bruke 'Queue' for å få størrelsen på multiprosesseringskøen, kaller vi 'qsize()' med multiprosesseringskøen. Deretter, i den nyopprettede «result»-variabelen, lagrer vi resultatet av «qsize()»-metoden. Etter det kaller vi 'print()'-metoden og sender setningen 'Størrelsen på multiprosesseringskøen er' som parameter. Deretter kaller vi «resultat»-variabelen i «print()»-funksjonen siden størrelsen er lagret i denne variabelen.


Utgangsbildet har størrelsen som vises. Ettersom vi bruker 'put()'-funksjonen til å legge til syv elementer til multiprosesseringskøen og 'qsize()'-funksjonen for å bestemme størrelsen, vises multiprosesseringskøens størrelse '7'. Inndatasetningen «størrelsen på multiprosesseringskøen» vises før størrelsen.

Eksempel 3: Bruk av 'Put()' og 'Get()'-metoden i Python Multiprocessing Queue

'put()'- og 'get()'-kømetodene fra Python-multiprosesseringskøen 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 elementene i køen. Deretter, for å hente tallene fra køen og returnere verdiene deres, skriver vi en annen funksjon og kaller den under prosedyren. Vi bruker 'get()'-funksjonen for å hente tallene fra køen siden denne metoden brukes til å hente data 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 «behandle» fra multiprosessering fordi denne koden skaper en prosess , og til slutt 'køen' fra multiprosessering. Ved først å konstruere en klasseforekomst kan køen brukes. Som standard etablerer dette en uendelig kø eller en kø uten maksimal størrelse. Ved å sette alternativet for maksimal størrelse til et tall som er større enn null, er det mulig å lage en kreasjon med en størrelsesbegrensning.


Vi definerer en funksjon. Siden denne funksjonen er brukerdefinert, gir vi den navnet 'funksjon1' og sender begrepet 'kø' som argument. Etter det påkaller vi 'print()'-funksjonen, og gir den 'builder: Running', 'flush' og objektet 'True'-setningene . Pythons utskriftsfunksjon har et unikt alternativ kalt flush som lar brukeren velge om denne utgangen skal bufres eller ikke. Det neste trinnet er å generere oppgaven. For å gjøre dette bruker vi «for» og oppretter variabelen «m» og setter området til «5». Deretter, på neste linje, bruker du «random()» og lagrer resultatet i variabelen vi laget, som er «verdi». Dette indikerer at funksjonen nå fullfører sine fem iterasjoner, hvor hver iterasjon skaper et tilfeldig heltall fra 0 til 5.

Deretter, i det følgende trinnet, kaller vi 'sleep()'-funksjonen og sender 'verdi'-argumentet for å forsinke delen i et visst antall sekunder. Deretter kaller vi «køen» med «put()»-metoden for å legge til verdien i køen. Brukeren blir deretter informert om at det ikke er noe mer arbeid å gjøre ved å påkalle «queue.put()»-metoden en gang til og sende «Ingen»-verdien. Deretter kjører vi 'print()'-metoden, sender 'builder: ready'-setningen sammen med 'flush' og setter den til 'True'.


Vi definerer nå en annen funksjon, 'function2', og tildeler nøkkelordet 'queue' som argument til den. Deretter kaller vi 'print()'-funksjonen mens vi sender rapportens status 'User: Running' og 'flush' som er satt til 'True'. Vi starter operasjonen av 'function2' ved å bruke while true-betingelsen for å ta dataene ut av køen og legge dem i den nyopprettede 'item'-variabelen. Deretter bruker vi 'hvis'-betingelsen, 'elementet er ingen', for å avbryte sløyfen hvis betingelsen er sann. Hvis ingen vare er tilgjengelig, stopper den og ber brukeren om en. Oppgaven stopper løkken og slutter i dette tilfellet hvis elementet som er hentet fra verdien er null. Deretter, i det følgende trinnet, kaller vi 'print()'-funksjonen og gir rapporten 'Bruker: klar' og 'flush=True'-parametere til den.


Deretter går vi inn i hovedprosessen ved å bruke 'If-name = main_'. Vi oppretter en kø ved å kalle «queue()»-metoden og lagre den i «queue»-variabelen. Deretter lager vi en prosess ved å kalle brukerfunksjonen 'funksjon2'. For dette kaller vi 'prosess'-klassen. Inne i den sender vi 'target=function2' for å kalle funksjonen i prosessen, sender argumentet 'queue' og lagrer det i 'User_process'-variabelen. Prosessen starter deretter ved å kalle «start()»-metoden med «User_ process»-variabelen. Vi gjentar deretter den samme prosedyren for å kalle 'funksjon1' i prosessen og sette den i 'byggerprosess'-variabelen. Deretter kaller vi prosessene med «join()»-metoden for å vente på kjøringen.


Nå som den er presentert, kan du se setningene for begge funksjonene i utdataene. Den viser elementene vi la til ved å bruke henholdsvis 'put()' og 'get()' ved å bruke 'get()'-metodene.

Konklusjon

Vi lærte om Python-multiprosesseringskøen i denne artikkelen. Vi brukte de gitte illustrasjoner. Først beskrev vi hvordan du oppretter en kø i Python-multiprosessering ved hjelp av queue()-funksjonen. Deretter brukte vi «qsize()»-metoden for å bestemme køens . Vi brukte også køens put()- og get()-metoder. Søvnklassen til tidsmodulen og den tilfeldige klassen til den tilfeldige modulen ble begge diskutert i det siste eksemplet.