POSIX tråd:
På Linux-plattformer pthread C og C ++ språk standard API for alle typer trådrelaterte funksjoner. Det er også kjent som en POSIX-tråd som lar brukerne lage mange tråder for at samtidige prosesser skal kunne strømme. Det brukes best i flerkjernesystemer eller prosessorer for å implementere tråder på kjernen for å oppnå systemet.
Gjennomføring:
Det er nødvendig å ta med denne pthread.h topptekstfil i skriptet i utgangspunktet. Dette vil hjelpe deg med å bruke funksjonene til pthreads-biblioteket. Følgende kommandoer for å utføre c-filen
$ cc-trådfil.c
ELLER
$ cc -lpthread-fil.c
Funksjonene som er definert i pthreads-biblioteket kan omfatte:
pthread_create:
Den brukes til å lage en ny tråd
Parametere for pthread_create:
Den har følgende parametere:
tråd: Dette fungerer som en peker til en usignert heltallverdi. Den returnerer tråd-ID-en til tråden som dannes.
attributter: Denne parameteren fungerer som en peker til en struktur. Den brukes til å definere attributter til en tråd som kan være policyen for planlegging, og stable adresse, etc.
startrutine: Denne parameteren er en peker til en underrutine implementert av tråden.
argument: Denne parameteren er en peker som skal annulleres med forskjellige argumenter til funksjonen som er forhåndsdefinert i begynnelsen av argumentet
Syntaks:
>> int pthread_create(pthread_t * thread, const pthread_attributes_t * attr, void * (* start_routine) (void *), void * argument);
pthread_exit:
Den brukes til å avslutte eller avslutte en tråd
Parametere for pthread_exit:
Metoden som brukes på slutten av metoden / prosessen, godtar en parameterreval som er en obligatorisk indikator for et helt tall. Den lagrer trådens status slik at tråden avsluttes. Det må være en global variabel. Dette vil tillate at neste tråd i linjen blir med i tråden hvis den er tilgjengelig.
Syntaks:
>> ugyldig pthread_exit (ugyldig * gjengivelse);pthread_join:
Dette er en funksjon som brukes på ventetiden for avslutningen av tråden.
Parametere for pthread_join:
Parameteren som brukes her er:
thread_id: Det er ID-en for tråden som tråden i linjen venter på.
thread_return: Det er parameteren som fungerer som en peker til det bestemte stedet der vi har definert utgangsstatus.
Syntaks:
>> int pthread_join (pthread_t thread_identification, void ** thread_return);pthread_self:
Dette er en metode som brukes for å få ID-en til tråden som er i tråd.
Syntaks:
>> pthread_t pthread_self (ugyldig);pthread_equal:
Denne metoden brukes til å sammenligne i tilfelle to tråder er likeverdige eller ikke. Hvis to tråder er like, vil funksjonen returnere en annen verdi enn null.
Syntaks:
>> int pthread_equal (pthread_t thread1, pthread_t thread2);pthread_cancel:
Denne metoden brukes til å sende en forespørsel om avbestilling
Parameter for pthread_cancel:
Parameteren som brukes er obligatorisk å oppgi for å kansellere forespørselen.
Syntaks:
>> int pthread_cancel (pthread_t threadName);pthread_detach:
Dette er metoden som brukes til å skille en tråd. Det trenger ingen tråd for å bli med på oppsigelsen. Alle ressursene som kjører i tråden frigjøres så snart tråden er løsrevet.
Parameter for pthread_detachr:
Det er parameteren som godtar den obligatoriske parameteren tråd-id. Det er et must å være løsrevet.
Syntaks:
>> int pthread_detach (pthread_t thread);Eksempelkode:
Her er et eksempel på en kode som viser implementeringen av den ovenfor beskrevne funksjonen. Vi brukte en gcc-kompilator for å kompilere disse funksjonene.
// Program for å vise trådfunksjonene#inkludere
#inkludere
#inkludere
// Kaller POSIX-tråden, et must-have i UNIX / LINUX-systemer
pthread_t tid [2];
ugyldig * Funksjon (ugyldig * arg)
usignert lang i = 0;
pthread_t id = pthread_self ();
if (pthread_equal (id, tid [0]))
// Betingelse for at tråder er like
printf ("\ n Første tråd behandles \ n");
ellers
printf ("\ n Andre tråd behandles \ n");
// Tråder som behandles.
for (i = 0; i<(0x255);i++);
retur NULL;
int main (ugyldig)
int i = 0;
int feil;
// Opprette en ny tråd
mens jeg < 2)
error = pthread_create (& (tid [i]), NULL, & Funksjon, NULL);
hvis (feil != 0)
printf ("\ n Kunne ikke opprette tråden: [% s]", strerror (feil));
ellers
printf ("\ n Tråden er opprettet vellykket \ n");
// Tråden ble opprettet
i ++;
søvn (5);
retur 0;
Koden er skrevet i en tekstredigerer; du kan bruke hvilken som helst redaktør basert på ditt valg. Lagre den deretter på favorittstedet ditt.
Filen lagres i datasystemet og får tilgang til den. Filen som ble lagret av oss, ble kalt test.c. For å få tilgang til det, skriv inn følgende kommando i terminalvinduet:
$ sudo gcc test.c -lpthread
Deretter skriver du følgende kommando for å utføre utgangen:
$ ./en.ute
Forventet utgang:
Resultatet vi fikk som svar på den forrige koden er vist nedenfor:
Konklusjon:
Opplæringen dekket den grunnleggende prosessen med trådopprettelse og diskuterte alle de vanlige metodene i opprettelsen. Tråd er en forekomst av en prosess. Vi gikk deretter brukerne gjennom de berømte parametrene som brukes av hver prosess sammen med syntaksen, slik at de kan bruke dem i dataprogrammene sine. Her delte vi også en eksempelkode som et eksempel for bedre å forstå ideen om å lage et C-program i POSIX. Kompilatoren vi brukte var gcc i Linux-systemet. Brukere kan velge hvilken som helst annen kompilator også basert på deres preferanser.