Coada de multiprocesare Python

Coada De Multiprocesare Python



Cel mai important element al structurii de date este coada. Coada structurii de date „primul intrat, primul ieșit” care stă la baza multiprocesării Python este comparabilă. Cozile sunt furnizate funcției de proces pentru a permite procesului să colecteze datele. Primul element de date care trebuie eliminat din coadă este primul element care trebuie introdus. Folosim metoda „put()” a cozii pentru a adăuga datele în coadă și metoda ei „get()” pentru a prelua datele din coadă.

Exemplul 1: Utilizarea metodei Queue() pentru a crea o coadă de multiprocesare în Python

În acest exemplu, creăm o coadă de multiprocesare în Python folosind metoda „queue()”. Multiprocesarea se referă la utilizarea unuia sau mai multor procesoare într-un sistem pentru a efectua două sau mai multe procese simultan. Multiprocesarea, un modul construit în Python, facilitează comutarea între procese. Trebuie să fim familiarizați cu proprietatea procesului înainte de a lucra cu multiprocesare. Suntem conștienți de faptul că coada este o componentă crucială a modelului de date. Coada de date standard, care este construită pe ideea „First-In-First-Out”, și multiprocesarea Python sunt egale exacte. În general, coada stochează obiectul Python și este crucială pentru transferul de date între sarcini.







Instrumentul „spyder” este folosit pentru a implementa scriptul Python prezent, așa că pur și simplu să începem. Mai întâi trebuie să importam modulul de multiprocesare deoarece rulăm scriptul de multiprocesare Python. Am făcut acest lucru importând modulul de multiprocesare ca „m”. Folosind tehnica „m.queue()”, invocăm metoda de multiprocesare „queue()”. Aici, creăm o variabilă numită „coadă” și plasăm în ea metoda de multiprocesare „queue()”. Deoarece știm că coada stochează articole într-o ordine „primul intrat, primul ieșit”, articolul pe care îl adăugăm primul este eliminat primul. După lansarea cozii de multiprocesare, apelăm apoi metoda „print()”, pasând declarația „Există o coadă de multiprocesare” ca argument pentru a o afișa pe ecran. Apoi, pentru că stocăm coada construită în această variabilă, imprimăm coada trecând variabila „coadă” în paranteza metodei „print()”.




Următoarea imagine arată că coada de multiprocesare Python este acum construită. Declarația de tipărire este afișată mai întâi. După ce această coadă de multiprocesare este construită în adresa de memorie desemnată, ea poate fi utilizată pentru a transfera date distincte între două sau mai multe procese care rulează.







Exemplul 2: Utilizarea metodei „Qsize()” pentru a determina dimensiunea cozii de multiprocesare în Python

Determinăm mărimea cozii de multiprocesare în acest caz. Pentru a calcula dimensiunea cozii de multiprocesare, folosim metoda „qsize()”. Funcția „qsize()” returnează dimensiunea reală a cozii de multiprocesare Python. Cu alte cuvinte, această metodă oferă numărul total de articole dintr-o coadă.

Să începem prin a importa modulul de multiprocesare Python ca „m” înainte de a rula codul. Apoi, folosind comanda „m.queue()”, invocăm funcția de multiprocesare „queue()” și punem rezultatul în variabila „Queue”. Apoi, folosind metoda „put()”, adăugăm articolele în coadă din următoarea linie. Această metodă este folosită pentru a adăuga datele la o coadă. Prin urmare, numim „Queue” cu metoda „put()” și furnizăm numerele întregi ca element în paranteză. Numerele pe care le adăugăm sunt „1”, „2”, „3”, „4”, „5”, „6” și „7” folosind funcțiile „put()”.



În plus, folosind „Queue” pentru a obține dimensiunea cozii de multiprocesare, numim „qsize()” cu coada de multiprocesare. Apoi, în variabila „rezultat” nou formată, salvăm rezultatul metodei „qsize()”. După aceea, apelăm metoda „print()” și trecem declarația „Dimensiunea cozii de multiprocesare este” ca parametru. În continuare, numim variabila „rezultat” în funcția „print()”, deoarece dimensiunea este salvată în această variabilă.


Imaginea de ieșire are dimensiunea afișată. Pe măsură ce folosim funcția „put()” pentru a adăuga șapte elemente la coada de multiprocesare și funcția „qsize()” pentru a determina dimensiunea, este afișată dimensiunea „7” a cozii de multiprocesare. Instrucțiunea de intrare „mărimea cozii de multiprocesare” este afișată înaintea dimensiunii.

Exemplul 3: Utilizarea metodei „Put()” și „Get()” în coada de multiprocesare Python

Metodele de coadă „put()” și „get()” din coada de multiprocesare Python sunt utilizate în acest exemplu. În acest exemplu, dezvoltăm două funcții definite de utilizator. În acest exemplu, definim o funcție pentru a crea un proces care produce „5” numere întregi aleatorii. De asemenea, folosim metoda „put()” pentru a le adăuga la o coadă. Metoda „put()” este folosită pentru a plasa articolele în coadă. Apoi, pentru a prelua numerele din coadă și a returna valorile acestora, scriem o altă funcție și o apelăm în timpul procedurii. Folosim funcția „get()” pentru a prelua numerele din coadă, deoarece această metodă este folosită pentru a prelua datele din coada pe care o introducem folosind metoda „put()”.

Să începem implementarea codului acum. Mai întâi, importăm cele patru biblioteci care alcătuiesc acest script. Importăm mai întâi „sleep” din modulul de timp pentru a întârzia execuția pentru un timp măsurat în secunde, urmat de „aleatoriu” din modulul aleatoriu care este folosit pentru a genera numere aleatoare, apoi „procesează” din multiprocesare deoarece acest cod creează un proces și, în final, „coada” de la multiprocesare. Construind inițial o instanță de clasă, coada poate fi utilizată. În mod implicit, aceasta stabilește o coadă infinită sau o coadă fără dimensiune maximă. Setând opțiunea dimensiune maximă la un număr care este mai mare decât zero, este posibil să faceți o creație cu o restricție de dimensiune.


Definim o functie. Apoi, deoarece această funcție este definită de utilizator, îi dăm numele „funcție1” și trecem termenul „coadă” ca argument. După aceea, invocăm funcția „print()”, trecându-i instrucțiunile „builder: Running”, „flush” și obiectul „True”. Funcția de imprimare a lui Python are o opțiune unică numită flush, care permite utilizatorului să aleagă dacă să tamponeze sau nu această ieșire. Următorul pas este generarea sarcinii. Pentru a face acest lucru, folosim „pentru” și creăm variabila „m” și setăm intervalul la „5”. Apoi, în rândul următor, folosiți „random()” și stocați rezultatul în variabila pe care am creat-o, care este „valoare”. Acest lucru indică faptul că funcția își termină acum cele cinci iterații, fiecare iterație creând un număr întreg aleatoriu de la 0 la 5.

Apoi, în pasul următor, apelăm funcția „sleep()” și trecem argumentul „valoare” pentru a întârzia porțiunea pentru un anumit număr de secunde. Apoi, numim „coadă” cu metoda „put()” pentru a adăuga, în esență, valoarea cozii. Utilizatorul este apoi informat că nu mai este nevoie de lucru prin invocarea metodei „queue.put()” încă o dată și transmiterea valorii „Niciuna”. Apoi, rulăm metoda „print()”, transmitem instrucțiunea „builder: ready” împreună cu „flush” și o setăm la „True”.


Definim acum o a doua funcție, „funcția2”, și îi atribuim cuvântul cheie „coadă” ca argument. Apoi, numim funcția „print()” în timp ce transmitem raportul „Utilizator: în curs de rulare” și „flush”, care este setat la „Adevărat”. Începem operația „funcție2” folosind condiția while true pentru a scoate datele din coadă și a le pune în variabila „articol” nou creată. Apoi, folosim condiția „if”, „articolul nu este niciunul”, pentru a întrerupe bucla dacă condiția este adevărată. Dacă nu este disponibil niciun element, acesta se oprește și solicită utilizatorului unul. Sarcina oprește bucla și se termină în acest caz dacă elementul care este obținut din valoare este nul. Apoi, în pasul următor, apelăm funcția „print()” și îi furnizăm raportul „Utilizator: gata” și parametrii „flush=True”.


Apoi, intrăm în procesul principal folosind „If-name = main_”. Creăm o coadă apelând metoda „queue()” și stocând-o în variabila „coadă”. Apoi, creăm un proces apelând funcția utilizator „funcție2”. Pentru aceasta, numim clasa „proces”. În interiorul acestuia, trecem „target=function2” pentru a apela funcția în proces, trecem argumentul „queue” și îl stocăm în variabila „User_process”. Procesul începe apoi prin apelarea metodei „start()” cu variabila „User_ process”. Repetăm ​​apoi aceeași procedură pentru a apela „funcția1” în proces și a o pune în variabila „proces de generare”. Apoi, apelăm procesele cu metoda „join()” pentru a aștepta execuția.


Acum că este prezentat, puteți vedea instrucțiunile ambelor funcții în rezultat. Afișează elementele pe care le-am adăugat folosind „put()” și, respectiv, „get()”, folosind metodele „get()”.

Concluzie

Am aflat despre coada de multiprocesare Python în acest articol. Am folosit ilustrările date. La început, am descris cum să creați o coadă în multiprocesarea Python folosind funcția queue(). Apoi, am folosit metoda „qsize()” pentru a determina cozile de așteptare. De asemenea, am folosit metodele put() și get() ale cozii. Clasa de somn a modulului de timp și clasa aleatoare a modulului aleatoriu au fost ambele discutate în ultimul exemplu.