Python-monikäsittelyjono

Python Monikasittelyjono



Tietorakenteen tärkein elementti on jono. Python-monikäsittelyn perustana oleva 'first in, first out' -tietorakennejono on vertailukelpoinen. Prosessitoiminnolle tarjotaan jonoja, jotta prosessi voi kerätä dataa. Ensimmäinen tieto, joka poistetaan jonosta, on ensimmäinen tieto, joka syötetään. Käytämme jonon put()-menetelmää tietojen lisäämiseen jonoon ja get()-menetelmää tietojen hakemiseen jonosta.

Esimerkki 1: Queue()-menetelmän käyttäminen moniprosessointijonon luomiseen Pythonissa

Tässä esimerkissä luomme moniprosessointijonon Pythonissa käyttämällä 'queue()'-menetelmää. Moniprosessointi tarkoittaa yhden tai useamman CPU:n käyttöä järjestelmässä kahden tai useamman prosessin suorittamiseen samanaikaisesti. Multiprocessing, Pythonissa rakennettu moduuli, helpottaa prosessien välillä vaihtamista. Meidän on tunnettava prosessin ominaisuus ennen kuin aloitamme moniprosessoinnin. Tiedämme, että jono on tärkeä osa tietomallia. Vakiotietojono, joka perustuu 'First-In-First-Out' -ajatukseen, ja Python-monikäsittely ovat täsmällisiä vastineita. Yleensä jono tallentaa Python-objektin ja on ratkaisevan tärkeä tehtävien välisen tiedonsiirron kannalta.







'Spyder'-työkalua käytetään Python-skriptin toteuttamiseen, joten aloitetaan yksinkertaisesti. Meidän on ensin tuotava moniprosessointimoduuli, koska käytämme Python-monikäsittelykomentosarjaa. Teimme tämän tuomalla monikäsittelymoduulin muodossa 'm'. Käyttämällä 'm.queue()'-tekniikkaa kutsumme moniprosessointimenetelmän 'queue()'. Täällä luomme muuttujan nimeltä 'queue' ja asetamme siihen moniprosessointimenetelmän 'queue()'. Koska tiedämme, että jonoon tallennetaan tuotteet 'ensin sisään, ensin ulos' -järjestyksessä, ensin lisäämämme tuote poistetaan ensin. Kun moniprosessointijono on käynnistetty, kutsumme sitten 'print()' -menetelmää ja välitämme lauseen 'On monikäsittelyjono' argumenttina sen näyttämiseksi näytöllä. Sitten, koska tallennamme muodostetun jonon tähän muuttujaan, tulostamme jonon välittämällä 'queue'-muuttujan 'print()'-menetelmän suluissa.




Seuraava kuva näyttää, että Python-monikäsittelyjono on nyt muodostettu. Tulostettu lausunto näytetään ensin. Kun tämä monikäsittelyjono on muodostettu määritettyyn muistiosoitteeseen, sitä voidaan käyttää erillisten tietojen siirtämiseen kahden tai useamman käynnissä olevan prosessin välillä.







Esimerkki 2: Qsize()-menetelmän käyttäminen Pythonin monikäsittelyjonon koon määrittämiseen

Tässä tapauksessa määritämme monikäsittelyjonon koon. Monikäsittelyjonon koon laskemiseksi käytämme 'qsize()' -menetelmää. Funktio 'qsize()' palauttaa Python-monikäsittelyjonon todellisen koon. Toisin sanoen tämä menetelmä tarjoaa jonossa olevien kohteiden kokonaismäärän.

Aloitetaan tuomalla Python-monikäsittelymoduuli muodossa 'm' ennen koodin suorittamista. Sitten 'm.queue()'-komennolla kutsumme moniprosessoivan 'queue()'-funktion ja laitamme tuloksen 'Queue'-muuttujaan. Sitten 'put()'-menetelmällä lisäämme kohteet jonoon seuraavalla rivillä. Tätä menetelmää käytetään tietojen lisäämiseen jonoon. Siksi kutsumme 'Queue' -menetelmää 'put()' -menetelmällä ja annamme kokonaisluvut sen elementtinä suluissa. Lisäämämme numerot ovat '1', '2', '3', '4', '5', '6' ja '7' käyttämällä 'put()'-funktioita.



Lisäksi käyttämällä 'Queue'-funktiota monikäsittelyjonon koon saamiseksi kutsumme 'qsize()'-funktiota moniprosessointijonon kanssa. Sitten tallennetaan vastikään muodostettuun 'result'-muuttujaan 'qsize()'-menetelmän tulos. Tämän jälkeen kutsumme 'print()' -menetelmää ja välitämme sen parametriksi lauseen 'Multiprosessointijonon koko on'. Seuraavaksi kutsumme 'tulos'-muuttujaa 'print()'-funktiossa, koska koko tallennetaan tähän muuttujaan.


Tulostuskuvan koko on näytössä. Kun käytämme 'put()'-funktiota lisäämään seitsemän elementtiä moniprosessointijonoon ja 'qsize()'-funktiota määrittämään kokoa, moniprosessointijonon koko '7' näytetään. Syöttölause 'monikäsittelyjonon koko' näytetään ennen kokoa.

Esimerkki 3: 'Put()'- ja 'Get()'-menetelmien käyttäminen Python-monikäsittelyjonossa

Tässä esimerkissä käytetään Python-monikäsittelyjonon 'put()'- ja 'get()'-jonomenetelmiä. Kehitämme tässä esimerkissä kaksi käyttäjän määrittämää funktiota. Tässä esimerkissä määritämme funktion, joka luo prosessin, joka tuottaa '5' satunnaista kokonaislukua. Käytämme myös 'put()' -menetelmää lisätäksemme ne jonoon. Put()-menetelmää käytetään kohteiden sijoittamiseen jonoon. Sitten, jotta voimme noutaa numerot jonosta ja palauttaa niiden arvot, kirjoitamme toisen funktion ja kutsumme sitä toimenpiteen aikana. Käytämme 'get()'-funktiota numeroiden noutamiseen jonosta, koska tätä menetelmää käytetään tietojen hakemiseen jonosta, jonka lisäämme 'put()'-menetelmällä.

Aloitetaan koodin käyttöönotto nyt. Ensin tuomme neljä kirjastoa, jotka muodostavat tämän skriptin. Ensin tuomme 'sleep' aikamoduulista viivästyttääksemme suoritusta jonkin ajan sekunneissa mitattuna, sen jälkeen 'satunnais' satunnaismoduulista, jota käytetään satunnaislukujen luomiseen, sitten 'prosessoimme' moniprosessoinnista, koska tämä koodi luo prosessin. , ja lopuksi 'jono' monikäsittelystä. Luomalla aluksi luokkailmentymä, jonoa voidaan käyttää. Oletuksena tämä muodostaa äärettömän jonon tai jonon, jolla ei ole enimmäiskokoa. Asettamalla max size -asetukseksi numero, joka on suurempi kuin nolla, on mahdollista tehdä luomus kokorajoituksella.


Määrittelemme funktion. Tämän jälkeen, koska tämä funktio on käyttäjän määrittämä, annamme sille nimen 'function1' ja annamme sen argumentiksi termin 'queue'. Tämän jälkeen kutsumme 'print()'-funktion välittämällä sille 'builder: Running', 'flush' ja objektin 'True' -lausekkeet. Pythonin tulostustoiminnossa on ainutlaatuinen vaihtoehto nimeltä flush, jonka avulla käyttäjä voi valita, puskuroiko tämä tulos vai ei. Seuraava vaihe on tehtävän luominen. Käytämme tätä varten 'for' ja luomme muuttujan 'm' ja asetamme alueen arvoon '5'. Käytä sitten seuraavalla rivillä 'random()' ja tallenna tulos tekemäämme muuttujaan, joka on 'arvo'. Tämä osoittaa, että funktio on nyt lopettanut viisi iteraatiota, ja jokainen iteraatio luo satunnaisen kokonaisluvun väliltä 0–5.

Sitten seuraavassa vaiheessa kutsumme 'sleep()'-funktiota ja välitämme 'arvo'-argumentin viivyttääksemme osuutta tietyn sekuntimäärän. Tämän jälkeen kutsumme 'jonoa' put()-menetelmällä lisätäksemme arvon jonoon. Tämän jälkeen käyttäjälle ilmoitetaan, ettei enää tarvitse tehdä mitään, käynnistämällä 'queue.put()'-metodi vielä kerran ja välittämällä 'None'-arvon. Sitten suoritamme 'print()' -menetelmän, välitämme 'builder: ready' -lauseen 'flush' -käskyn kanssa ja asetamme sen arvoon 'True'.


Määritämme nyt toisen funktion, 'funktion2', ja annamme sen argumentiksi avainsanan 'jono'. Sitten kutsumme 'print()'-funktiota ja välitämme raportin 'User: Running' ja 'flush', jonka arvoksi on asetettu 'True'. Aloitamme 'function2' toiminnan käyttämällä while true -ehtoa tietojen poistamiseksi jonosta ja sijoittamiseksi äskettäin luotuun 'item'-muuttujaan. Sitten käytämme 'jos' -ehtoa, 'kohde on ei mitään', keskeyttämään silmukan, jos ehto on tosi. Jos tuotetta ei ole saatavilla, se pysähtyy ja pyytää käyttäjältä sellaista. Tehtävä pysäyttää silmukan ja lopettaa tässä tapauksessa, jos arvosta saatu alkio on nolla. Sitten seuraavassa vaiheessa kutsumme 'print()'-funktiota ja toimitamme sille 'User: ready' -raportin ja 'flush=True' -parametrit.


Sitten syötämme pääprosessin käyttämällä 'If-name = main_'. Luomme jonon kutsumalla 'queue()'-menetelmää ja tallentamalla sen 'queue'-muuttujaan. Seuraavaksi luomme prosessin kutsumalla käyttäjäfunktiota 'function2'. Tätä varten kutsumme 'prosessi'-luokkaa. Sen sisällä välitämme 'target=function2' kutsuaksemme funktion prosessissa, välitämme argumentin 'queue' ja tallennamme sen 'User_process'-muuttujaan. Prosessi alkaa sitten kutsumalla 'start()'-menetelmää 'User_process'-muuttujan kanssa. Toistamme sitten saman menettelyn kutsuaksemme 'funktiota1' prosessissa ja laitamme sen 'builder process' -muuttujaan. Sitten kutsumme prosesseja 'join()'-menetelmällä odottamaan suoritusta.


Nyt kun se on esitetty, voit nähdä molempien funktioiden lauseet tulosteessa. Se näyttää kohteet, jotka olemme lisänneet käyttämällä 'put()' ja 'get()' käyttämällä 'get()'-menetelmiä, vastaavasti.

Johtopäätös

Opimme Python-monikäsittelyjonosta tässä artikkelissa. Käytimme annettuja kuvia. Aluksi kuvailimme jonon luomista Python-monikäsittelyssä queue()-funktion avulla. Sitten määritimme jonon qsize()-menetelmällä. Käytimme myös jonon put()- ja get()-menetelmiä. Aikamoduulin uniluokkaa ja satunnaismoduulin satunnaisluokkaa käsiteltiin molemmat viimeisessä esimerkissä.