Vi har begynt å implementere denne artikkelen for å opprette en nylig generert C -fil. Denne filen kan opprettes ved hjelp av Ubuntus "Touch" -instruksjon i skallet. Det er ganske enkelt å gjøre det da vi gjorde det i kommandoen som ble vist på vedlagte skjermbilde. Det er flere innebygde redaktører tilgjengelig i Ubuntu for bare å åpne og redigere C-koden. Vi har brukt den innebygde “Nano” -redaktøren i en terminal av Ubuntu 20.04 Bruke nøkkelordet “Nano” i instruksjonen.
Eksempel 01:
Så vi starter vårt første eksempel på å bruke Pthread_Self () -funksjonen i C -koden for å få "ID" til en tråd i Ubuntu 20.04. Vi har initialisert koden med enkle overskrifter. Disse overskriftene er nødvendighetene i C -koden. Uten disse overskriftene er koden vår til ingen nytte, og vi vil ikke kunne få det nødvendige resultatet. Vi har tatt med "stdio" -overskriften for å ta standardinngangsutgangen i koden vår. Standard bibliotekoverskriftsfil brukes også. I mellomtiden er hovedoverskriftsfilen "Pthread", som har blitt inkludert for å bruke Standard POSIX Thread Library og dens funksjoner i C -koden.
Etter at bibliotekene er inkludert, har vi brukt den brukerdefinerte trådfunksjonen som heter "oppgave" og tar pekerhenvisning til "id" til en tråd opprettet i hovedfunksjonen. Innenfor denne oppgavefunksjonen bruker vi Printf -klausulen til å sende ut en uttalelse som viser at vi utfører tråden som har en bestemt "ID."Tråden" ID "som har fått fra bruken av" Pthread_self "-funksjonen i denne uttalelsen, vises sammen med teksten i skallet via" printf "-klausulen.
"Pthread_Exit" -funksjonen brukes her for å avslutte den opprettede tråden og returnere null til hovedfunksjonen, som vist i "retur" -bestemmelsen "i" oppgaven "-funksjonen". Her kommer den viktigste utførelseskoden til en fil. Utførelsen av C -kode vil alltid bli initiert fra dens hovedfunksjon (). Main () -funksjonen er å bruke POSIXs "pthread_t" -variabel for å få IDen til en tråd opprettet av "pthread_create" -funksjonen innen "th" mutable. Den enkle "printf" -klausulen blir avstøpt her for å sende ut på terminalen som hovedfunksjonen har utført eller kjørt rett for øyeblikket. Etter dette er "pthread_create" -funksjonen her for å lage en ny tråd. "TH" -variabelen har blitt referert til for å identifisere denne tråden av sin ID og få nullparametere. "Oppgave" -funksjonen har blitt kalt her for å bruke den som en trådutførende eller vise informasjon angående tråd -ID. Oppgavefunksjonen tar ingen argumenter i henhold til null. Etter at "oppgaven" -funksjonen er utført og returnert "null", brukes pthread_join () -funksjonen her for å stoppe eller henge den anropende tråden mens du venter på at den rettede tråden skal fullføre eller avslutte. C -koden for pthread_self () er fullført og samlet i skallet.
La oss bruke "GCC" -kompilatoren som allerede er installert i Ubuntu 20.04 System. Koden din vil ikke sende ut den nødvendige tingen på skallet uten den. Så du må få “GCC” -kompilatoren. Samlingen for pthread_self () er enorm, og vi er klare til å kjøre koden. Kjørekoden brukes som et enkelt nøkkelord "./en.ut ”som nedenfor. Du kan se at hovedfunksjonen ble utført først og opprettet en tråd. Gjennom denne tråden kalles "oppgaven" -funksjonen, og den viser tråd -ID i skallet. Oppgavefunksjonen ble fullført, og hovedtråden ble avsluttet. Slik fungerer "Pthread_self" -funksjonen.
Eksempel 02:
La oss ta en ny illustrasjon for å se på "Pthread_self ()" -funksjonen i C -koden. For det vil vi oppdatere det samme “jeget.c ”-fil bare brukt i eksemplet ovenfor. Vi åpner filen i Ubuntus redaktør som heter “Nano” som vist under.
Koden startes igjen med noen overskrifter. Standard inngangsutgangsoverskrift brukes for å få inngangen og vise den. "Unistd" og "stdlib" -bibliotekene brukes til å bruke noen standardfunksjoner i koden. "Pthread" -biblioteket er et must å bruke her for å bruke "Posix" -funksjonene i koden. Vi har definert antall tråder som bruker "trådene" av POSIX i koden etter bibliotekene ved å bruke "IF" -uttalelsen og bruken av nøkkelordet "#define". Det brukes til å begrense antall tråder som brukes i koden til ikke mer enn 3. Etter Threads-erklæringen har vi brukt den brukerdefinerte funksjonen "Display" av pekertypen er erklært. Denne funksjonen tar argumentet “P” for pekertype. Den lange typen variabel "id" er erklært.
På neste linje konverteres referansepekervariabelverdien til "lang" type og har blitt tildelt variabelen "ID.”Printf -leddet bruker trådnummeret og ID -en for å vises på skallet ved å bruke“ LD ”og“ LU ”i teksten. Etter dette har tråden blitt forlatt. Nå er hovedfunksjonen () erklært med to argumenter. “Pthread_t” brukes til å initialisere listen “Th” med en størrelse på 3 tråder ved å bruke “tråder” som allerede er erklært. Da er en heltallvariabel “Res” erklært, og “for” -sløyfen er startet. Den vil løpe opptil 3 ganger, og tre tråder vil bli opprettet ved hjelp av "pthread_create" -funksjonen ". Denne funksjonen bruker ID -ene til tre tråder fortløpende, etter hverandre, og displayfunksjonen bruker disse ID -ene som deres argument for å peke på “P.”Hvis det oppstod noen feil på grunn av“ Display ”-metoden, er tråden ikke fullført vellykket. Det vil returnere feilen til hovedfunksjonene “Res” -variabel. Hvis det oppstår en feil, vil "printf" -uttalelsen vise den feilen ved å bruke "res" -variabelen i den i "hvis" -uttalelsen. Etter det blir IF -uttalelsen og programmet avsluttet.
Nå er det på høy tid å lagre og kompilere denne C -koden i systemet. For å lagre, bruk "Ctrl+S" mens du bor i redaktøren. Bruk “Ctrl+X” for å avslutte C -kodeditoren. Etter "GCC" -samlingskommandoen, lyktes bruken i skallet. Vi kjørte denne koden med "./en.ut ”instruksjon, og utgangen viser ID -ene til tre forskjellige tråder etter hverandre.
Konklusjon:
Denne artikkelen har blitt dekket de enkle og mest enkle eksemplene på å bruke Pthread_Join () -funksjonen til POSIX -biblioteket i C. For det første har vi forklart bruken av Posix 'Pthread_Join () "-funksjon på C -språket. Etter det har vi diskutert noen av eksemplene for å illustrere dets arbeid i C -programmet. Vi har tro på at alle eksemplene er bemerkelsesverdige og lett implementeres på Linux -redaktøren og kjører på skallet.