POSIX-Thread:
Auf Linux-Plattformen die C- und C++-Sprachen pthread-Standard-API für alle Arten von Thread-bezogenen Funktionen. Es ist auch als POSIX-Thread bekannt, der es Benutzern ermöglicht, viele Threads für den gleichzeitigen Ablauf von Prozessen zu erstellen. Es wird am besten in Multi-Core-Systemen oder -Prozessoren verwendet, um Threads auf dem Kernel zu implementieren, um das System zu erreichen.
Implementierung:
Es ist notwendig, diesen Pthread einzuschließen.h-Header-Datei zunächst im Skript. Dies hilft bei der Nutzung der Funktionen der pthreads-Bibliothek. Um die c-Datei auszuführen, die folgenden Befehle
$ cc -pthread-Datei.c
ODER
$ cc -lpthread-Datei.c
Zu den Funktionen, die in der pthreads-Bibliothek definiert sind, gehören:
pthread_create:
Es wird verwendet, um einen neuen Thread zu erstellen
Parameter von pthread_create:
Es hat die folgenden Parameter:
Faden: Dies fungiert als Zeiger auf einen vorzeichenlosen Integer-Wert. Es gibt die Thread-ID des gebildeten Threads zurück.
Attribute: Dieser Parameter fungiert als Zeiger auf eine Struktur. Es wird verwendet, um Attribute eines Threads zu definieren, die die Richtlinie für die Planung und die Stack-Adresse usw. sein können.
start_routine: Dieser Parameter ist ein Zeiger auf eine vom Thread implementierte Subroutine implemented.
Streit: Dieser Parameter ist ein Zeiger auf void mit verschiedenen Argumenten auf die am Anfang des Arguments vordefinierte Funktion
Syntax:
>> int pthread_create(pthread_t * thread, const pthread_attributes_t * attr, void * (*start_routine)(void *), void *argument);
pthread_exit:
Es wird verwendet, um einen Thread zu beenden oder zu beenden
Parameter von pthread_exit:
Die am Ende der Methode/des Prozesses verwendete Methode akzeptiert einen Parameter retval, der ein obligatorischer Indikator für eine ganze Zahl ist. Es speichert den Status des Threads so, dass der Thread beendet wird. Es muss eine globale Variable sein. Dadurch kann der nächste Thread in der Reihe dem Thread beitreten, wenn er verfügbar ist.
Syntax:
>> void pthread_exit(void *retval);pthread_join:
Dies ist eine Funktion, die zum Zeitpunkt des Wartens auf die Beendigung des Threads verwendet wird.
Parameter für pthread_join:
Die hier verwendeten Parameter sind:
thread_id: Es ist die ID des Threads, auf den der Thread in der Zeile wartet.
thread_return: Es ist der Parameter, der als Zeiger auf die bestimmte Stelle fungiert, an der wir den Exit-Status definiert haben.
Syntax:
>> int pthread_join(pthread_t thread_identification, void **thread_return);pthread_self:
Dies ist eine Methode, um die ID des Threads zu erhalten, der sich gerade in der Zeile befindet.
Syntax:
>> pthread_t pthread_self(leer);pthread_equal:
Diese Methode wird verwendet, um zu vergleichen, ob zwei Threads äquivalent sind oder nicht. Wenn zwei Threads gleich sind, gibt die Funktion als Antwort einen anderen Wert als Null zurück.
Syntax:
>> int pthread_equal(pthread_t-Thread1, pthread_t-Thread2);pthread_cancel:
Diese Methode wird verwendet, um eine Stornierungsanfrage zu senden
Parameter für pthread_cancel:
Der verwendete Parameter muss zwingend eingegeben werden, um die Anfrage abzubrechen.
Syntax:
>> int pthread_cancel(pthread_t threadName);pthread_detach:
Dies ist die Methode, die verwendet wird, um einen Thread zu trennen. Es ist kein Thread erforderlich, um bei der Beendigung beizutreten. Alle im Thread laufenden Ressourcen werden freigegeben, sobald der Thread getrennt wird.
Parameter von pthread_detachr:
Es ist der Parameter, der den obligatorischen Parameter Thread-ID akzeptiert. Es ist ein Muss, losgelöst zu sein.
Syntax:
>> int pthread_detach(pthread_t-Thread);Beispielcode:
Hier ist ein Beispielcode, um die Implementierung der oben beschriebenen Funktion zu zeigen. Wir haben einen gcc-Compiler verwendet, um diese Funktionen zu kompilieren.
// Programm zum Anzeigen der Thread-Funktionen#einschließen
#einschließen
#einschließen
// Aufruf des POSIX-Threads, ein Muss in UNIX/LINUX-Systemen
pthread_t tid[2];
void*Funktion(void*arg)
vorzeichenloses langes i = 0;
pthread_t-ID = pthread_self();
if(pthread_equal(id,tid[0]))
// Bedingung für Threads gleich
printf("\n Erster Thread wird bearbeitet\n");
sonst
printf("\n Zweiter Thread wird bearbeitet \n");
// Threads werden verarbeitet.
für(i=0; i<(0x255);i++);
NULL zurückgeben;
int main(void)
int i = 0;
im Terror;
// Einen neuen Thread erstellen
während ich < 2)
error = pthread_create(&(tid[i]), NULL, &Funktion, NULL);
wenn (Fehler != 0)
printf("\n Konnte den Thread nicht erstellen :[%s]", strerror(error));
sonst
printf("\n Thread wurde erfolgreich erstellt\n");
// Thread erfolgreich erstellt
i++;
schlafen(5);
0 zurückgeben;
Der Code wird in einem Texteditor geschrieben; Sie können jeden beliebigen Editor verwenden, basierend auf Ihrer Wahl. Dann speichere es an deinem Lieblingsort.
Die Datei wird im Computersystem gespeichert und dann aufgerufen. Die von uns gespeicherte Datei hieß test.c. Um darauf zuzugreifen, geben Sie den folgenden Befehl im Terminalfenster ein:
$ sudo gcc-test.c -lpthread
Geben Sie als Nächstes den folgenden Befehl ein, um die Ausgabe auszuführen:
$ ./ein.aus
Erwartete Ausgabe:
Die Ausgabe, die wir als Reaktion auf den vorherigen Code erhalten haben, ist unten dargestellt:
Fazit:
Das Tutorial behandelte den grundlegenden Prozess der Thread-Erstellung und diskutierte alle gebräuchlichen Methoden bei der Erstellung. Thread ist eine Instanz eines Prozesses. Anschließend haben wir die Benutzer durch die berühmten Parameter geführt, die von jedem Prozess verwendet werden, zusammen mit den Syntaxen, damit sie sie in ihren Computerprogrammen verwenden können. Hier haben wir auch einen Beispielcode als Beispiel geteilt, um die Idee der Erstellung eines C-Programms in POSIX besser zu verstehen. Der von uns verwendete Compiler war gcc im Linux-System. Benutzer können sich auch für jeden anderen Compiler entscheiden, basierend auf ihren Vorlieben.