Python večprocesna čakalna vrsta

Python Vecprocesna Cakalna Vrsta



Najpomembnejši element podatkovne strukture je čakalna vrsta. Čakalna vrsta strukture podatkov »prvi vstopi, prvi ven«, ki je osnova za večprocesiranje Python, je primerljiva. Funkciji procesa so na voljo čakalne vrste, da se procesu omogoči zbiranje podatkov. Prva postavka podatkov, ki se izloči iz čakalne vrste, je prva postavka, ki jo je treba vnesti. Uporabljamo metodo »put()« čakalne vrste za dodajanje podatkov v čakalno vrsto in njeno metodo »get()« za pridobivanje podatkov iz čakalne vrste.

1. primer: uporaba metode Queue() za ustvarjanje večprocesne čakalne vrste v Pythonu

V tem primeru ustvarimo večprocesno čakalno vrsto v Pythonu z uporabo metode 'queue()'. Večprocesiranje se nanaša na uporabo enega ali več procesorjev v sistemu za izvajanje dveh ali več procesov hkrati. Multiprocessing, zgrajen modul v Pythonu, olajša preklapljanje med procesi. Preden delamo z večprocesiranjem, moramo biti seznanjeni z lastnostjo procesa. Zavedamo se, da je čakalna vrsta ključna komponenta podatkovnega modela. Standardna čakalna vrsta podatkov, ki je zgrajena na ideji »First-In-First-Out«, in večprocesiranje Python sta natančni dvojnici. Na splošno čakalna vrsta shranjuje objekt Python in je ključnega pomena za prenos podatkov med opravili.







Orodje »spyder« se uporablja za implementacijo prisotnega skripta Python, zato preprosto začnimo. Najprej moramo uvoziti večprocesni modul, ker izvajamo večprocesni skript Python. To smo naredili tako, da smo večprocesni modul uvozili kot »m«. S tehniko »m.queue()« prikličemo večprocesno metodo »queue()«. Tukaj ustvarimo spremenljivko, imenovano 'queue', in vanjo postavimo večprocesno metodo 'queue()'. Ker vemo, da čakalna vrsta shranjuje elemente v vrstnem redu »prvi vstopi, prvi ven«, se element, ki ga dodamo prvi, najprej odstrani. Po zagonu večprocesne čakalne vrste nato pokličemo metodo »print()« in posredujemo stavek »Obstaja večprocesna čakalna vrsta« kot njen argument za prikaz na zaslonu. Potem, ker shranimo konstruirano čakalno vrsto v to spremenljivko, natisnemo čakalno vrsto tako, da posredujemo spremenljivko 'queue' v oklepaju metode 'print()'.




Naslednja slika prikazuje, da je večprocesna čakalna vrsta Python zdaj sestavljena. Izjava za tiskanje je prikazana najprej. Ko je ta večprocesna čakalna vrsta sestavljena v določenem pomnilniškem naslovu, jo je mogoče uporabiti za prenos različnih podatkov med dvema ali več tekočimi procesi.







2. primer: uporaba metode »Qsize()« za določanje velikosti večprocesne čakalne vrste v Pythonu

V tem primeru določimo velikost večprocesne čakalne vrste. Za izračun velikosti večprocesne čakalne vrste uporabimo metodo “qsize()”. Funkcija “qsize()” vrne dejansko velikost večprocesne čakalne vrste Python. Z drugimi besedami, ta metoda zagotavlja skupno število elementov v čakalni vrsti.

Začnimo z uvozom večprocesnega modula Python kot »m«, preden zaženemo kodo. Nato z ukazom “m.queue()” pokličemo večprocesno funkcijo “queue()” in rezultat postavimo v spremenljivko “Queue”. Nato z uporabo metode »put()« dodamo elemente v čakalno vrsto v naslednji vrstici. Ta metoda se uporablja za dodajanje podatkov v čakalno vrsto. Zato pokličemo »Čakalno vrsto« z metodo »put()« in podamo cela števila kot njen element v oklepaju. Številke, ki jih dodamo, so »1«, »2«, »3«, »4«, »5«, »6« in »7« s funkcijami »put()«.



Poleg tega z uporabo »Čakalne vrste« za pridobitev velikosti večprocesne čakalne vrste pokličemo »qsize()« z večprocesno čakalno vrsto. Nato v novo oblikovano spremenljivko »result« shranimo rezultat metode »qsize()«. Po tem pokličemo metodo »print()« in kot njen parameter posredujemo stavek »Velikost večprocesne čakalne vrste je«. Nato pokličemo spremenljivko »result« v funkciji »print()«, saj je velikost shranjena v tej spremenljivki.


Izhodna slika ima prikazano velikost. Ker uporabljamo funkcijo »put()« za dodajanje sedmih elementov v večprocesno čakalno vrsto in funkcijo »qsize()« za določanje velikosti, je prikazana velikost večprocesne čakalne vrste »7«. Vhodni stavek 'velikost večprocesne čakalne vrste' je prikazan pred velikostjo.

3. primer: uporaba metod »Put()« in »Get()« v večprocesni čakalni vrsti Python

V tem primeru sta uporabljeni metodi čakalne vrste »put()« in »get()« iz večprocesne čakalne vrste Python. V tem primeru razvijemo dve uporabniško definirani funkciji. V tem primeru definiramo funkcijo za ustvarjanje procesa, ki proizvede '5' naključnih celih števil. Uporabljamo tudi metodo »put()«, da jih dodamo v čakalno vrsto. Metoda »put()« se uporablja za uvrščanje elementov v čakalno vrsto. Nato za pridobitev števil iz čakalne vrste in vrnitev njihovih vrednosti napišemo drugo funkcijo in jo pokličemo med postopkom. Funkcijo »get()« uporabljamo za pridobivanje števil iz čakalne vrste, saj se ta metoda uporablja za pridobivanje podatkov iz čakalne vrste, ki jih vstavimo z metodo »put()«.

Začnimo izvajati kodo zdaj. Najprej uvozimo štiri knjižnice, ki sestavljajo ta skript. Najprej uvozimo »mirovanje« iz časovnega modula, da odložimo izvedbo za nekaj časa, merjeno v sekundah, sledi »naključno« iz naključnega modula, ki se uporablja za generiranje naključnih števil, nato »proces« iz večprocesiranja, ker ta koda ustvari proces , in končno, 'čakalna vrsta' iz večprocesiranja. Z začetno konstrukcijo primerka razreda je mogoče uporabiti čakalno vrsto. To privzeto vzpostavi neskončno čakalno vrsto ali čakalno vrsto brez največje velikosti. Z nastavitvijo možnosti največje velikosti na število, ki je večje od nič, je možno ustvariti stvaritev z omejitvijo velikosti.


Definiramo funkcijo. Potem, ker je ta funkcija uporabniško definirana, ji damo ime 'function1' in posredujemo izraz 'queue' kot njen argument. Po tem prikličemo funkcijo »print()« in ji posredujemo izjave »builder: Running«, »flush« in objekt »True«. Pythonova funkcija tiskanja ima edinstveno možnost, imenovano flush, ki uporabniku omogoča, da izbere, ali naj medpomni ta izhod ali ne. Naslednji korak je generiranje naloge. Za to uporabimo »za« in ustvarimo spremenljivko »m« ter nastavimo obseg na »5«. Nato v naslednji vrstici uporabite »random()« in shranite rezultat v spremenljivko, ki smo jo naredili in je »vrednost«. To pomeni, da funkcija zdaj konča svojih pet ponovitev, pri čemer vsaka ponovitev ustvari naključno celo število od 0 do 5.

Nato v naslednjem koraku pokličemo funkcijo »sleep()« in posredujemo argument »value«, da odložimo del za določeno število sekund. Nato pokličemo »čakalno vrsto« z metodo »put()«, da v bistvu dodamo vrednost v čakalno vrsto. Uporabnik je nato obveščen, da s ponovnim klicem metode »queue.put()« in posredovanjem vrednosti »None« ni več potrebno opraviti nobenega dela. Nato zaženemo metodo »print()«, posredujemo stavek »builder: ready« skupaj s »flush« in ga nastavimo na »True«.


Zdaj definiramo drugo funkcijo, 'function2', in ji dodelimo ključno besedo 'queue' kot njen argument. Nato pokličemo funkcijo »print()«, medtem ko posredujemo stanje poročila »Uporabnik: Teče« in »flush«, ki je nastavljeno na »True«. Zaženemo operacijo 'function2' z uporabo pogoja while true, da vzamemo podatke iz čakalne vrste in jih postavimo v novo ustvarjeno spremenljivko 'item'. Nato uporabimo pogoj »if«, »item is None«, da prekinemo zanko, če je pogoj resničen. Če ni na voljo noben element, se ustavi in ​​uporabnika vpraša za enega. Naloga ustavi zanko in se v tem primeru konča, če je postavka, pridobljena iz vrednosti, ničelna. Nato v naslednjem koraku pokličemo funkcijo »print()« in ji zagotovimo poročilo »Uporabnik: pripravljeno« ter parametre »flush=True«.


Nato vstopimo v glavni proces z uporabo 'If-name = main_'. Čakalno vrsto ustvarimo tako, da pokličemo metodo »queue()« in jo shranimo v spremenljivko »queue«. Nato ustvarimo proces s klicem uporabniške funkcije 'function2'. Za to imenujemo razred 'proces'. Znotraj tega posredujemo »target=function2«, da pokličemo funkcijo v procesu, posredujemo argument »queue« in ga shranimo v spremenljivko »User_process«. Postopek se nato začne s klicem metode »start()« s spremenljivko »User_ process«. Nato ponovimo isti postopek, da pokličemo 'function1' v procesu in jo postavimo v spremenljivko 'builder process'. Nato pokličemo procese z metodo »join()«, da počakajo na izvedbo.


Zdaj, ko je predstavljen, lahko vidite izjave obeh funkcij v izhodu. Prikaže elemente, ki smo jih dodali s »put()« oziroma »get()« z uporabo metod »get()«.

Zaključek

V tem članku smo spoznali večprocesno čakalno vrsto Python. Uporabili smo podane ilustracije. Najprej smo opisali, kako ustvariti čakalno vrsto v Python večprocesiranju z uporabo funkcije queue(). Nato smo uporabili metodo »qsize()« za določitev čakalne vrste. Uporabili smo tudi metodi čakalne vrste put() in get(). Razred mirovanja časovnega modula in naključni razred naključnega modula sta bila obravnavana v zadnjem primeru.