Cua de multiprocessament de Python

Cua De Multiprocessament De Python



L'element més crucial de l'estructura de dades és la cua. La cua d'estructura de dades 'primer en entrar, primer en sortir' que és la base per al multiprocessament de Python és comparable. Es proporcionen cues a la funció de procés per permetre que el procés reculli les dades. El primer element de dades que s'elimina de la cua és el primer element que s'introdueix. Utilitzem el mètode 'put()' de la cua per afegir les dades a la cua i el seu mètode 'get()' per recuperar les dades de la cua.

Exemple 1: ús del mètode Queue() per crear una cua de multiprocessament a Python

En aquest exemple, creem una cua de multiprocessament a Python mitjançant el mètode 'queue()'. El multiprocessament fa referència a l'ús d'una o més CPU en un sistema per realitzar dos o més processos simultàniament. El multiprocessament, un mòdul construït a Python, facilita el canvi entre processos. Hem d'estar familiaritzats amb la propietat del procés abans de treballar amb multiprocessament. Som conscients que la cua és un component crucial del model de dades. La cua de dades estàndard, que es basa en la idea 'First-In-First-Out', i el multiprocessament de Python són homòlegs exactes. En general, la cua emmagatzema l'objecte Python i és crucial per a la transferència de dades entre tasques.







L'eina 'spyder' s'utilitza per implementar l'script de Python present, així que comencem. Primer hem d'importar el mòdul de multiprocessament perquè estem executant l'script de multiprocessament de Python. Ho hem fet important el mòdul de multiprocessament com a 'm'. Utilitzant la tècnica “m.queue()”, invoquem el mètode multiprocessament “queue()”. Aquí, creem una variable anomenada 'cua' i hi col·loquem el mètode multiprocessament 'queue()'. Com que sabem que la cua emmagatzema els articles en un ordre de 'primer en entrar, primer en sortir', primer s'elimina l'element que afegim primer. Després de llançar la cua de multiprocessament, cridem al mètode 'print()', passant la declaració 'Hi ha una cua de multiprocessament' com a argument per mostrar-la a la pantalla. Aleshores, com que emmagatzemem la cua construïda en aquesta variable, imprimim la cua passant la variable 'queue' entre parèntesis del mètode 'print()'.




La imatge següent mostra que ara s'ha construït la cua de multiprocessament de Python. Primer es mostra la declaració d'impressió. Després de construir aquesta cua de multiprocessament a l'adreça de memòria designada, es pot utilitzar per transferir les diferents dades entre dos o més processos en execució.







Exemple 2: ús del mètode 'Qsize()' per determinar la mida de la cua de multiprocessament a Python

En aquest cas, determinem la mida de la cua de multiprocessament. Per calcular la mida de la cua de multiprocessament, utilitzem el mètode 'qsize()'. La funció 'qsize()' retorna la mida real de la cua de multiprocessament de Python. En altres paraules, aquest mètode proporciona el nombre total d'elements en una cua.

Comencem per importar el mòdul multiprocessament de Python com a 'm' abans d'executar el codi. A continuació, utilitzant l'ordre 'm.queue()', invoquem la funció multiprocessament 'queue()' i posem el resultat a la variable 'Queue'. A continuació, utilitzant el mètode 'put()', afegim els elements a la cua de la línia següent. Aquest mètode s'utilitza per afegir les dades a una cua. Per tant, anomenem 'Queue' amb el mètode 'put()' i proporcionem els nombres enters com a element entre parèntesis. Els números que afegim són '1', '2', '3', '4', '5', '6' i '7' mitjançant les funcions 'put()'.



A més, utilitzant “Queue” per obtenir la mida de la cua de multiprocessament, anomenem “qsize()” amb la cua de multiprocessament. A continuació, a la variable 'resultat' acabada de formar, desem el resultat del mètode 'qsize()'. Després d'això, anomenem el mètode 'print()' i passem la declaració 'La mida de la cua de multiprocessament és' com a paràmetre. A continuació, anomenem la variable 'resultat' a la funció 'print()' ja que la mida es desa en aquesta variable.


La imatge de sortida té la mida que es mostra. Com que utilitzem la funció 'put()' per afegir set elements a la cua de multiprocessament i la funció 'qsize()' per determinar la mida, es mostra la mida de la cua de multiprocessament '7'. La declaració d'entrada 'la mida de la cua de multiprocessament' es mostra abans de la mida.

Exemple 3: ús del mètode 'Put()' i 'Get()' a la cua de multiprocessament de Python

En aquest exemple s'utilitzen els mètodes de cua 'put()' i 'get()' de la cua de multiprocessament de Python. Desenvolupem dues funcions definides per l'usuari en aquest exemple. En aquest exemple, definim una funció per crear un procés que produeix '5' nombres enters aleatoris. També fem servir el mètode 'put()' per afegir-los a una cua. El mètode 'put()' s'utilitza per col·locar els elements a la cua. Aleshores, per recuperar els números de la cua i retornar els seus valors, escrivim una altra funció i la cridem durant el procediment. Utilitzem la funció 'get()' per recuperar els números de la cua ja que aquest mètode s'utilitza per recuperar les dades de la cua que inserim mitjançant el mètode 'put()'.

Comencem a implementar el codi ara. Primer, importem les quatre biblioteques que formen aquest script. Primer importem 'sleep' del mòdul de temps per retardar l'execució durant un temps mesurat en segons, seguit de 'aleatori' del mòdul aleatori que s'utilitza per generar números aleatoris, i després 'procés' del multiprocessament perquè aquest codi crea un procés. , i finalment, la 'cua' del multiprocessament. En construir inicialment una instància de classe, es pot utilitzar la cua. Per defecte, això estableix una cua infinita o una cua sense mida màxima. En establir l'opció de mida màxima a un nombre superior a zero, és possible fer una creació amb una restricció de mida.


Definim una funció. Aleshores, com que aquesta funció està definida per l'usuari, li donem el nom 'funció1' i passem el terme 'cua' com a argument. Després d'això, invoquem la funció 'print()', passant-li les declaracions 'builder: Running', 'flush' i l'objecte 'True'. La funció d'impressió de Python té una opció única anomenada flush que permet a l'usuari triar si emmagatzema o no aquesta sortida. El següent pas és generar la tasca. Per fer-ho, utilitzem 'per' i creem la variable 'm' i establim l'interval a '5'. A continuació, a la línia següent, utilitzeu 'aleatori()' i deseu el resultat a la variable que hem creat, que és 'valor'. Això indica que la funció ara acaba les seves cinc iteracions, amb cada iteració creant un nombre enter aleatori de 0 a 5.

A continuació, en el pas següent, cridem a la funció 'sleep()' i passem l'argument 'valor' per retardar la porció durant un cert nombre de segons. A continuació, anomenem la 'cua' amb el mètode 'put()' per afegir el valor bàsicament a la cua. Aleshores, l'usuari s'informa que no hi ha més feina per fer invocant el mètode 'queue.put()' una vegada més i passant el valor 'Cap'. A continuació, executem el mètode 'print()', passem la declaració 'builder: ready' juntament amb 'flush' i l'establim a 'True'.


Ara definim una segona funció, 'funció2', i li assignem la paraula clau 'cua' com a argument. Aleshores, anomenem la funció 'print()' mentre passem l'informe que indica 'Usuari: en execució' i 'flush' que està establert en 'True'. Comencem l'operació de 'funció2' utilitzant la condició while true per treure les dades de la cua i posar-les a la variable 'element' acabada de crear. Aleshores, fem servir la condició 'if', 'l'element no és cap', per interrompre el bucle si la condició és certa. Si no hi ha cap element disponible, s'atura i demana a l'usuari un. La tasca atura el bucle i finalitza en aquest cas si l'element que s'obté del valor és nul. A continuació, en el pas següent, cridem a la funció 'print()' i li proporcionem l'informe 'Usuari: llest' i els paràmetres 'flush=True'.


Aleshores, entrem al procés principal amb el 'If-name = main_'. Creem una cua cridant al mètode 'queue()' i emmagatzemant-la a la variable 'queue'. A continuació, creem un procés cridant la funció d'usuari 'funció2'. Per a això, anomenem classe 'procés'. Dins d'ell, passem el 'target=function2' per cridar la funció en el procés, passem l'argument 'queue' i l'emmagatzemem a la variable 'User_process'. Aleshores, el procés comença cridant al mètode 'start()' amb la variable 'User_ process'. A continuació, repetim el mateix procediment per cridar la 'funció1' en el procés i posar-la a la variable 'procés constructor'. A continuació, cridem els processos amb el mètode 'join()' per esperar l'execució.


Ara que s'ha presentat, podeu veure les declaracions d'ambdues funcions a la sortida. Mostra els elements que hem afegit amb els mètodes 'put()' i 'get()' mitjançant els mètodes 'get()', respectivament.

Conclusió

Hem après sobre la cua de multiprocessament de Python en aquest article. Hem utilitzat les il·lustracions proporcionades. Al principi, vam descriure com crear una cua amb el multiprocessament de Python utilitzant la funció queue(). A continuació, hem utilitzat el mètode 'qsize()' per determinar la cua . També hem utilitzat els mètodes put() i get() de la cua. La classe de son del mòdul de temps i la classe aleatòria del mòdul aleatori es van parlar ambdues a l'últim exemple.