En tråd i et program er en samling instruksjoner som kan utføres separat fra resten av programmet. Som et resultat er hver av de mange små oppgavene om at et omfattende program kan deles inn i flere tråder så lenge utførelsen er uavhengig av de andre oppgavene. Hvis et program bare kjører på en tråd, bruker det bare en CPU eller at ett stykke kode. Imidlertid, hvis et program kan deles inn i flere tråder og har hver av disse trådene til å bruke en egen CPU, vil programmet kjøre mye raskere og være mer effektivt. En tråd gir aldri et resultat direkte i Python. Tråden “Start ()” -prosedyre som genererer en utførelsestråd, starter løpende handlinger til tråden som kjører skriptet vårt. "Run ()" -tilnærmingen kan bruke målmetoden hvis en er gitt. Målet er ganske enkelt å kalle funksjonen i en tråd noen om gangen.
Eksempel 1: Python -funksjon som returnerer verdien fra en gjenget operasjon
I dette tilfellet bruker vi et Python -skript for å returnere funksjonsverdien fra tråden. En tråd er en unik prosesseringsstrøm. Dette antyder at koden din vil håndtere to samtidige forekomster. Hovedtyngden av Python -løsninger skaper imidlertid bare ideen om at flere tråder er aktive samtidig. Returtypen til en funksjon brukes vanligvis for å beskrive verdien den gir til brukeren. All Python -prosedyre ser ut til å involvere en hendelsesbehandler, enten direkte eller utilsiktet. En tråd reagerer ikke øyeblikkelig på verdier. "Run ()" -prosessen betegnes etter trådens start () -metode, og skaper en egen prosesseringstråd for koden vår. Hvis den leveres, kan målfunksjonen kalles ved hjelp av “Run ()” -metoden. For å hente verdier fra en tråd, må en tråd i et skript først opprettes. Vi kan returnere en funksjonsverdi fra en enkelt tråd eller flere tråder.
La oss nå begynne å implementere koden. Først importerer vi tråden fra tråddelen. Trådmodulen må importeres for å lage tråder i Python. "Tråd" -pakkenes enhetsskaping anser hver tråd som et objekt. Mens "tråd" -pakken tar hensyn til en trådlignende funksjon. Deretter definerer vi en funksjon med navnet "func" i neste trinn. Siden denne funksjonen er en som brukeren kan spesifisere, ga vi den et navn på at vi valgte. “Argu1” og “Returning_val” ble levert som parametere til funksjonen “func” i parentesen.
Deretter bruker vi i det følgende trinn. Etter det opprettet vi variabelen “returner_1_value” og satte den til “Ingen*1”. Tilsvarende opprettet vi “Returning_2_Value” og satte den til “Ingen*1” for den andre returneringen. "Func" -metoden viser argumentet 1s verdi og setter inn returerklæringen i returverdien 0 -posisjoner.
For å lage en tråd og ringe funksjonen i den, må vi først kalle “tråd” og deretter “Target = func” i hver av parentesene. Mål er egentlig en funksjon, så vi tar mål mot "func" og sender argumentlisten fra tråden, som inneholder "tråd 1" og "returnerende 1 verdi". I dette tilfellet brukes Returning 1 -verdien til å hente verdien fra funksjonen der denne tråden er lagret i variabelen “Tråd1”.Deretter utfører vi den samme prosedyren for den andre tråden. Vi kaller tråder, og innenfor den passerer vi funksjonen "func", parameterlisten som er "tråd 2", så vel som "return_2_value", som vi bruker for å oppnå funksjonens verdi. Denne tråden lagrer den i variabelen “Tråd2”. Trådene er nå startet ved å bruke "start ()" -funksjonen med "tråd1" og "tråd2". I det følgende trinnet bruker vi metodene “Join ()” for å vente på at trådene skal fullføre utførelsen. "Print ()" -funksjonen brukes deretter i følgende linje med argumentene "returnin_1_value" og "return_2_value".
I utgangen viste den returverdien. Først viste den utskriftserklæringen der vi passerte den returnerende verdien. Verdien for 1 er “Tråd1”, og 2 er “Tråd 2”. Deretter viste den tråderklæringen, som er "returner verdien fra tråd 1", og den andre er "returner verdien fra tråd 2".
Eksempel 2: Flere verdier som får avkastning fra en tråd
I dette tilfellet returnerer vi flere verdier fra trådene til utgangsskjermen. Når et program produserer mange tråder og sykluser gjennom utførelsen, er det multithreading, også kjent som tråd, siden det forhindrer at en lengre løping blir blokkert alle de andre. Dette er effektivt for aktiviteter som kan deles inn i mindre subtasks, som hver kan gis til en tråd for utførelse.
La oss begynne å implementere koden ved å importere tre biblioteker. Python Time -pakken gir en rekke kodingsrepresentasjoner for tid, for eksempel objekter, tall og tegn. I den første importen importerer vi "søvn" fra tidsmodulen. Det lar deg også evaluere effektiviteten til skriptet ditt og vente mens det kjører, i tillegg til andre funksjoner enn tidsrepresentasjon. Tidsmodulens søvn () -prosedyre lar deg suspendere utførelsen av anropstråden for hva mange sekunder du vil. Etter det importerer vi “tråd” fra trådmodulen. Klassen “CustomThread” er definert i følgende trinn, og den aksepterer argumentet “tråd” som den eneste parameteren.
Deretter definerer vi “_init_” -metoden og leverer søkeordet “selv” til det. Hvert objekt eller klasse i Python har det "selv" nøkkelordet som er tilordnet det. Nøkkelordet "selv" lar en raskt få tilgang til alle eksempler som er erklært i en klasse, inkludert dens metoder og attributter. En av Pythons begrensede metoder er __init__. I den følgende linjen kaller vi denne metoden ved hjelp av en tråd ved å bruke “Tråd. i seg selv)". Deretter, i den følgende linjen, definerer vi “Run ()” -funksjonen og passerer argumentet “selv.”Deretter bruker vi“ Sleep () ”-metoden og setter tiden til“ 1 ”sekunder, noe som betyr at den stopper utførelsen i ett sekund.
Deretter setter vi verdiene i hver forekomstvariabel ved å bruke “Selv.Val1 ”,“ Selv.Val2 ”, og“ Selv.Val3 ”som setter henholdsvis verdiene sine til henholdsvis" Hello "," 18 "og" True ". Med andre ord, vi kalte verdiene ved å sende nøkkelordet "selv" her. Deretter kalte vi "CustomThread" i tråden og lagret den i "tråden" -variabelen. Etter det bruker vi start () -metoden med tråder for å starte tråden og "join ()" -teknikken med "tråd" for å vente på at hovedprogrammet skal kjøre. Deretter kaller vi "print ()" -funksjonen, og innsiden av den kaller vi trådreturverdiene som passerer argumentene "tråden.Val1 ”,“ Tråd.Val2 ”, og“ Tråd.Val3 ”.
Som vist i følgende skjermbilde returnerer det flere verdier fra tråder i utgangen. Den første verdien er "Hei", den andre er "18", og den tredje er "sann", som er trådverdier som vi hadde lagret i "Run ()" -funksjonen.
Konklusjon
Vi diskuterte hvordan du bare kan returnere trådverdien eller verdiene til en funksjon fra en tråd i denne artikkelen. To forekomster ble brukt i denne artikkelen. Trådoperasjonens funksjonsverdi ble returnert i den første, og de mange trådverdiene ble returnert i utgangsdisplayet av det andre. I hvert av våre tilfeller har vi definert brukerdefinerte funksjoner som kalles i tråder. "CustomThread" -klassen ble også definert i det andre eksemplet. Du vil dra nytte av å lese denne artikkelen når du forsker på dette emnet.