Python samtidig futures

Python samtidig futures
"I likhet med hvordan vi kan konstruere og bruke bassenget med tråder, kan det dannes et prosessbasseng og brukes. Prosessbassenger er samlinger av tomgang, tidligere opprettet prosesser som venter på å bli tildelt oppgaver. Når vi trenger å utføre flere handlinger, er det bedre å bruke et prosesspool for å konstruere innovative prosedyrer for hver aktivitet. Samtidig.Futures er en komponent som finnes i standardbiblioteket i Python. For å gi programmerere et forhøyet grensesnitt for å starte samtidige prosesser, ble denne pakken introdusert i Python 3.2.

Grensesnittet for å utføre oppgaver som bruker et basseng med tråder eller prosesser er gitt av dette innkapslingslaget på toppen av Pythons multitasking og multithreading -komponenter. Samtidig.Futures Module of Python kom med en abstrakt klasse “Executor” sammen med sine konkrete underklasser som brukes i stedet for "Executor" -klassen. Det er fordi "Executor" -klassen ikke kan brukes direkte i koden.”

Eksempel 01

La oss komme i gang med den første illustrasjonen av artikkelen vår. Vi vil vise deg bruken av prosesspoolexecutor underklassen til “Executor” i denne illustrasjonen, i.e., Motta en strøm av oppgaver for å fullføre jobbene siden den sysselsetter flerbehandling. Den strømmen tildeler jobber til eksisterende tråder og planlegger utførelsen. Vi har startet dette Python -programmet med bruk av “Samtidig.Futures ”-modul som importerer sin prosesspoolexecutor -underklasse her i koden.

Etter det har vi importert søvnklassen til en tidsmodul i Python via bruk av og importerer nøkkelord. Vi definerer en funksjon med navnet "tråd", tar en meldingsvariabel som et argument i den. Denne funksjonen har brukt funksjonen for funksjonsanrop () -funksjonen til Python for å få utførelsen til å stoppe bare i 2 sekunder og returnere meldingen til Main () -funksjonen.

Mens definisjonen av Main () har blitt startet med samtalen til "ProcessPoolexecutor" -funksjonen til samtidig.Futures -modul for å lage et basseng med 5 prosesser og lagre bassengresultatet til et objekt “Eksekutor”. Dette "Executor" -objektet har blitt brukt til å kalle "Send" -funksjonen for å lage 5 tråder ved å sende dem en melding "fullført" i parametrene. Funksjonsutførelsen prøvde å sove i 2 sekunder og returnere meldingen. Det returnerte resultatet vil bli lagret i variabelen “Future”. Vi har ringt "Done" -funksjonen med den fremtidige objektvariabelen i "Print" -uttalelsen fra Python -funksjonen for å vise det returnerte resultatet, i.e., sant eller usant.

Etter dette har vi brukt søvnfunksjonen for å få utførelsen av programmet til å fortsette etter 5 sekunder og deretter sjekke resultatet av Executor Pool med bruk av den ferdige funksjonen til det fremtidige objektet. Til slutt har "Future" -objektet blitt brukt til å kalle resultatet () innebygd funksjon av Python samtidig. Futures -modul for å se det faktiske resultatet, jeg.e., Fullført på slutten.

I de siste linjene kan vi se at hovedfunksjonen () har blitt kalt her. La oss bare lagre og utføre koden vår for å se det faktiske resultatet for å bruke samtidig.Futures -pakker i Python -programmer. Bildet nedenfor inneholder koden for den nevnte forklaringen også.

Etter å ha kjørt dette programmet i Spyder 3, har vi fått det vistede resultatet i Spyder3-verktøyet. Når Executor Pool på 5 tråder er startet, kaller den trådfunksjonen og sover i 2 sekunder, og returnerer deretter meldingen. Ettersom bassengprosessen ikke fullfører seg selv ennå, så "fremtiden.ferdig "returnerer usant, og vi har vist det" falske "resultatet. Utførelsen av dette programmet sover de neste 5 sekundene og viser deretter resultatet av “fremtid.gjort ”igjen.

Etter hvert som totalt 5 sekunder blir passert, og bassenget har blitt utført med hell, returnerer det sant i dette tilfellet. Endelig "fremtiden.Resultat ”-funksjon viste meldingen“ fullført ”for bassenget med 5 prosesser 'komplette utførelse. Dette er det forventede resultatet av den ovennevnte koden.

Eksempel 02

La oss ta en titt på et annet eksempel for å bruke prosesspoolexecutor underklassen av samtidig.Futures -modul i Python. Så vi har importert underklassen ProcessPooleExecutor her. Etter dette har vi initialisert en liste “Num” av 4 forskjellige numeriske verdier, i.e., 14, 7, 3, 15. Vi har brukt totalt 2 funksjoner i dette programmet. Hoved () funksjonsutførelse startet med bruken av prosesspoolexecutor Context Manager.

Context Manager kan brukes som en annen metode for å lage prosesspoolexecutor -forekomster. Den fungerer på samme måte som tilnærmingen som vises i foregående eksempel. Kontekstlederens beste funksjon er hvor syntaktisk tiltalende det er. Så vi har brukt det her for å lage et basseng på 3, jeg.e., Totalt arbeidere. Med dette har eksekutoren brukt MAP () -funksjonen for å passere et antall av hvert element i en "Num" -liste som en parameter til "Cube" -funksjonen for kartlegging. Kubfunksjonen vil returnere kuben til hvert nummer som sendes fra listen til den via bruk av “n*n*n” formler og lagre det returnerte resultatet til variabel “r”.

"For" -sløyfen er her for å bruke “R” -resultatet for hvert element for å vise hver returnerte verdi fra kubfunksjonen på konsollen via bruk av "Print" -funksjonen med "Val" -variabelen. De to siste linjene viser bruken av main () funksjonsanropet. Bildet nedenfor inneholder koden for den nevnte forklaringen også.

Utgangen har vist kuben til alle de 4 elementene i "Num" -listen. Dette er det forventede resultatet av den ovennevnte koden.

Konklusjon

Denne artikkelen handler om bruk av “Samtidig.Futures ”modul av Python i programmene for å se bruken. Innenfor vårt første eksempel har vi brukt det til å lage et basseng med 5 prosesser og returnere resultatet før og etter søvnfunksjonsbruken i koden. Etter dette benyttet vi et annet eksempel for å konsumere “samtidig.Futures ”-modul og viser noen matematiske beregninger på Sypder Tool Python Tool's Console.