Python Multiprocessing Queue

Python Multiprocessing Queue



Det mest avgörande elementet i datastrukturen är kön. 'Först in, först ut' datastrukturkön som ligger till grund för Python multiprocessing är jämförbar. Köer tillhandahålls till processfunktionen för att processen ska kunna samla in data. Den första posten med data som ska elimineras från kön är den första posten som ska matas in. Vi använder köns 'put()'-metod för att lägga till data i kön och dess 'get()'-metod för att hämta data från kön.

Exempel 1: Använda metoden Queue() för att skapa en multiprocessing-kö i Python

I det här exemplet skapar vi en multiprocessing-kö i Python med metoden 'queue()'. Multiprocessing hänvisar till användningen av en eller flera processorer i ett system för att utföra två eller flera processer samtidigt. Multiprocessing, en konstruerad modul i Python, underlättar växling mellan processer. Vi måste vara bekanta med processegenskapen innan vi arbetar med multiprocessing. Vi är medvetna om att kön är en avgörande komponent i datamodellen. Standarddatakön, som bygger på 'First-In-First-Out'-idén, och Python-multiprocessing är exakta motsvarigheter. I allmänhet lagrar kön Python-objektet och är avgörande för dataöverföring mellan uppgifter.







Verktyget 'spyder' används för att implementera det närvarande Python-skriptet, så låt oss helt enkelt komma igång. Vi måste först importera multiprocessing modulen eftersom vi kör Python multiprocessing script. Vi gjorde detta genom att importera multibearbetningsmodulen som 'm'. Genom att använda 'm.queue()'-tekniken anropar vi multiprocessing-metoden 'queue()'. Här skapar vi en variabel som heter 'queue' och placerar multiprocessing-metoden 'queue()' i den. Eftersom vi vet att kön lagrar varor i en 'först in, först ut'-ordning, tas den artikel som vi lägger till först bort först. Efter att ha startat multiprocessing-kön anropar vi metoden 'print()' och skickar påståendet 'Det finns en multiprocessing-kö' som argument för att visa den på skärmen. Sedan, eftersom vi lagrar den konstruerade kön i denna variabel, skriver vi ut kön genom att skicka variabeln 'kö' inom parentes för metoden 'print()'.




Följande bild visar att Python-multiprocessingkön nu är konstruerad. Utskriften visas först. Efter att denna multibearbetningskö har konstruerats i den angivna minnesadressen kan den användas för att överföra distinkta data mellan två eller flera pågående processer.







Exempel 2: Använda metoden 'Qsize()' för att bestämma storleken på multiprocessingkön i Python

Vi bestämmer storleken på multiprocessingkön i det här fallet. För att beräkna storleken på multiprocessingkön använder vi metoden 'qsize()'. Funktionen 'qsize()' returnerar den verkliga storleken på Python-multiprocessingkön. Med andra ord, denna metod ger det totala antalet artiklar i en kö.

Låt oss börja med att importera Python multiprocessing-modulen som 'm' innan du kör koden. Sedan använder vi kommandot 'm.queue()' och anropar multibearbetningsfunktionen 'queue()' och lägger resultatet i variabeln 'Queue'. Sedan, med 'put()'-metoden, lägger vi till objekten i kön på följande rad. Denna metod används för att lägga till data i en kö. Därför anropar vi 'Queue' med metoden 'put()' och anger heltalstalen som dess element inom parentes. Siffrorna som vi lägger till är '1', '2', '3', '4', '5', '6' och '7' med hjälp av 'put()'-funktionerna.



Genom att använda 'Queue' för att erhålla storleken på multiprocessing-kön, anropar vi 'qsize()' med multiprocessing-kön. Sedan, i den nybildade 'result'-variabeln, sparar vi resultatet av metoden 'qsize()'. Efter det anropar vi metoden 'print()' och skickar satsen 'Multiprocessingköns storlek är' som parameter. Därefter anropar vi 'result'-variabeln i 'print()'-funktionen eftersom storleken sparas i denna variabel.


Utdatabilden har den storlek som visas. När vi använder 'put()'-funktionen för att lägga till sju element till multiprocessing-kön och 'qsize()'-funktionen för att bestämma storleken, visas multiprocessing-köns storlek '7'. Inmatningssatsen 'storleken på multiprocessingkön' visas före storleken.

Exempel 3: Använda metoderna 'Put()' och 'Get()' i Python Multiprocessing Queue

'put()' och 'get()'-kömetoderna från Python-multiprocessingkön används i det här exemplet. Vi utvecklar två användardefinierade funktioner i detta exempel. I det här exemplet definierar vi en funktion för att skapa en process som producerar '5' slumpmässiga heltal. Vi använder också metoden 'put()' för att lägga till dem i en kö. Metoden 'put()' används för att placera objekten i kön. Sedan, för att hämta numren från kön och returnera deras värden, skriver vi en annan funktion och anropar den under proceduren. Vi använder funktionen 'get()' för att hämta siffrorna från kön eftersom denna metod används för att hämta data från kön som vi infogar med metoden 'put()'.

Låt oss börja implementera koden nu. Först importerar vi de fyra biblioteken som utgör detta skript. Vi importerar först 'sömn' från tidsmodulen för att fördröja exekveringen en tid mätt i sekunder, följt av 'slumpmässig' från den slumpmässiga modulen som används för att generera slumptal, sedan 'bearbetar' från multiprocessing eftersom denna kod skapar en process , och slutligen 'kön' från multiprocessing. Genom att initialt konstruera en klassinstans kan kön användas. Som standard skapar detta en oändlig kö eller en kö utan maximal storlek. Genom att ställa in maxstorleksalternativet till ett tal som är större än noll är det möjligt att skapa en skapelse med en storleksbegränsning.


Vi definierar en funktion. Sedan, eftersom den här funktionen är användardefinierad, ger vi den namnet 'funktion1' och skickar termen 'kö' som dess argument. Efter det anropar vi 'print()'-funktionen och skickar den 'builder: Running', 'flush' och objektet 'True'-satser. Pythons utskriftsfunktion har ett unikt alternativ som kallas flush som låter användaren välja om denna utdata ska buffras eller inte. Nästa steg är att generera uppgiften. För att göra detta använder vi 'för' och skapar variabeln 'm' och ställer in intervallet till '5'. Sedan, på nästa rad, använd 'random()' och lagra resultatet i variabeln som vi skapade som är 'värde'. Detta indikerar att funktionen nu avslutar sina fem iterationer, där varje iteration skapar ett slumpmässigt heltal från 0 till 5.

Sedan, i följande steg, anropar vi funktionen 'sleep()' och skickar argumentet 'värde' för att fördröja delen ett visst antal sekunder. Sedan anropar vi 'kön' med metoden 'put()' för att i huvudsak lägga till värdet till kön. Användaren informeras sedan om att det inte finns något ytterligare arbete att göra genom att anropa metoden 'queue.put()' en gång till och skicka värdet 'None'. Sedan kör vi metoden 'print()', skickar 'builder: ready'-satsen tillsammans med 'flush' och ställer in den på 'True'.


Vi definierar nu en andra funktion, 'funktion2', och tilldelar nyckelordet 'kö' som dess argument. Sedan anropar vi funktionen 'print()' medan vi skickar rapporten till 'User: Running' och 'flush' som är inställd på 'True'. Vi startar operationen av 'function2' med hjälp av while true-villkoret för att ta data ur kön och placera den i den nyskapade 'item'-variabeln. Sedan använder vi villkoret 'om', 'objektet är ingen', för att avbryta slingan om villkoret är sant. Om inget objekt är tillgängligt, stannar det och ber användaren om en. Uppgiften stoppar slingan och slutar i detta fall om objektet som erhålls från värdet är null. Sedan, i följande steg, anropar vi 'print()'-funktionen och tillhandahåller rapporten 'Användare: redo' och 'flush=True'-parametrar till den.


Sedan går vi in ​​i huvudprocessen med hjälp av 'Om-namn = huvud_'. Vi skapar en kö genom att anropa metoden 'queue()' och lagra den i variabeln 'queue'. Därefter skapar vi en process genom att kalla användarfunktionen 'funktion2'. För detta kallar vi klassen 'process'. Inuti den skickar vi 'target=function2' för att anropa funktionen i processen, skickar argumentet 'queue' och lagrar det i variabeln 'User_process'. Processen börjar sedan med att anropa metoden 'start()' med variabeln 'User_ process'. Vi upprepar sedan samma procedur för att anropa 'funktion1' i processen och placera den i variabeln 'byggarprocess'. Sedan anropar vi processerna med metoden 'join()' för att vänta på exekveringen.


Nu när den presenteras kan du se uttalandena för båda funktionerna i utdata. Den visar objekten som vi lade till med 'put()' och 'get()' genom att använda 'get()'-metoderna, respektive.

Slutsats

Vi lärde oss om Python multiprocessing-kön i den här artikeln. Vi använde de givna illustrationerna. Först beskrev vi hur man skapar en kö i Python multiprocessing med hjälp av queue()-funktionen. Sedan använde vi metoden 'qsize()' för att bestämma köns . Vi använde också köns metoder put() och get(). Sömnklassen för tidsmodulen och den slumpmässiga klassen för den slumpmässiga modulen diskuterades båda i det sista exemplet.