Pthread_create 3 C -funksjon

Pthread_create 3 C -funksjon
“Inne i en prosess er en tråd en liten kanalstrøm. Fordi de deler mange av egenskapene til prosesser, regnes ofte tråder som lette operasjoner. Fordi tråder, med unntak av prosesser, ikke er helt selvstendige, deler de sine skript, data og operativsystemfunksjoner som åpne filer og signaler med andre tråder. Imidlertid har en tråd, som en oppgave, sin programmet teller (PC), registerinnstilling og stablingsminne. Flere økter i en nettleser, for eksempel, kan representere distinkte tråder.”

MS Word bruker mange tråder, en for tekstformatering, en annen for behandling av innganger, og så videre. Innenfor denne artikkelen vil vi gi deg beskjed om bruken av Pthread_Create 3 C -funksjonen for å lage en tråd ved hjelp av Kali Linux -systemet. La oss komme i gang i skallet til Kali Linux nå. Vi må lage en ny C -fil der vi lager et C -program for tråder. Så vi kan bruke berøringsinstruksjonen til å opprette med tittelen “Create Thread” og “.C ”forlengelse på slutten. Filen er opprettet med suksess i henhold til listen over "LS" -instruksjoner og viser innholdet i en gjeldende arbeidskatalog.

For å åpne denne filen i en VIM -redaktør for å opprette kode, har vi brukt "VIM" -instruksjonen som vist nedenfor. Kommandoen må inneholde hele navnet på en fil sammen med "VIM" nøkkelordet. Den tomme VIM -redigeringsprogrammet åpner C -filen din med hell.

Eksempel 01

Det er på tide å lage et eksempel for Pthread_Create -funksjonen for å lage en ny tråd i C -skriptet. For dette starter vi C -koden vår med de viktigste standardbibliotekene som er inkludert i nøkkelordet "#include". For standardinngang og utgangsstrøm i programmet trenger vi “STDIO.H ”bibliotek sammen med“ stdlib.H ”og“ Unistd.H ”bibliotek.

Sammen med det har vi brukt “Pthread.H ”Library of C for å benytte deg av trådfunksjoner i vår C -kode. Uten dette biblioteket kan bruk av pThread -funksjoner forårsake feil. Vi har initialisert en global variabel “global” og tildelt den en verdi “0” i starten av koden etter overskriftene. Denne variabelen vil bli brukt i resten av koden.

La oss komme i gang med forklaringen på denne koden med hovedfunksjonen (). Hovedtråden har erklært en variabel "var" og "threadid" -variabel for tråden ved å bruke nøkkelordet “pthread_t.”" For "-sløyfen på 5 iterasjoner har blitt brukt til å lage en tråd 5 ganger med bruk av" pthread_create "-funksjonen i den. Vi har passert den en "ThreadID" -variabel for å telle trådnummeret og passere det en "func" trådfunksjon i den med den samme "ThreadID" -variabelen pekeren.

Etter opprettelsen av 5 tråder som bruker "for" -sløyfen, vil vi være ute av løkken, og "pthread_exit" -funksjonen vil bli brukt til å avslutte trådens henrettelser og avslutte programmet. La oss nå ta en titt på trådpekerfunksjonen "func", tar tråden "id" fra main () -metoden til tittelen på seg selv deretter. Argumentet “ID” som ble gitt av hoved () ville bli lagret til pekeren “ThreadID” av heltallstype. En statisk heltallvariabel “VAR” initialiseres til 0, og vi har vært etter å ha økt verdien av variabler “var” og “global.”

På grunn av post-increment, ville verdien bli økt først, jeg.e., “ID”, og deretter lagret i variabelen. Printf -setningen er her for å vise tråd -ID, statisk variabel verdi og global variabel verdi om gangen. Verdiene for tråder ville være 2, 4, 6, 8 og 10. La oss bare lagre koden vår og se hva som skjer etter samlingen.

For det første skal vi sammenstille denne C-koden med “GCC” -kompilatoren sammen med “-lpthread” -kommandoen for Linux-trådfunksjonen som inneholder “-o” -alternativet for å opprette utførelsesfilen “CreateThread.ut, ”som vist nedenfor. Filen er samlet og opprettet vellykket.

La oss kjøre den kompilerte feilfri utførelsesfil med "./”Kommando som vist nedenfor. Utgangene til 5 tråder har vist tråd -ID, statisk variabel verdi og global variabel verdi med økning av 2.

Eksempel 02

Innenfor dette eksemplet vil vi bruke samme format for kode. Med utgangspunkt i Main () -metoden har vi laget to heltallvariabler og en "thread_id" -variabel med nøkkelordet "pthread_t". "ThreadID" -variabelen har tatt informasjon om en Main () -metode ved hjelp av "Pthread_Self ()" -funksjonen og gitt den til "func" -funksjonen som har blitt brukt til å lage en ny tråd via "pthread_create ()" -funksjonen. Uansett hva den nyopprettede tråden vil returnere, vil bli lagret i den variable “CreateTurn” og sjekket innenfor "hvis" -uttalelsen. Hvis det oppstår noen feil, vil den bruke Printf -setningen for å vise det, og programmet blir avsluttet. Ellers, etter opprettelsen av en tråd, sover programmet i 1 sekund og bruker Printf -setningen for å vise at tråden er blitt opprettet med suksess.

Etter det blir programmet avsluttet. Func () trådfunksjonen vil vise sin trådinformasjon ved hjelp av Pthread_Self () -funksjonen og dataene til hoved- () -funksjonen som er gitt etter argument som vist ved hjelp av Printf -funksjonen.

Vi har samlet denne filen og opprettet en utførelseskodekodefil med "GCC" -instruksjonen.

Etter utførelse har vi også informasjons -ID for func () -funksjonen og hovedtråden () tråden ().

Hver gang vil utførelsen av dette programmet generere forskjellige data for begge trådene.

Konklusjon

Tråder er en vanlig tilnærming til å fremme synkronitet i applikasjoner. Tråder går raskere enn oppgaver for en rekke faktorer, i.e., Trådegenerering er mye raskere, kontekstbytte mellom tråder ser ut til å være mye raskere, trådavslutning er så mye enklere, og trådinteraksjonen er betydelig raskere. Innenfor denne artikkelen har vi diskutert bruken av pthread_create -funksjonen sammen med noen andre trådfunksjoner for å vise det. Vi håper du liker det.