C-Programmierung

POSIX-Thread mit C-Programmierung

POSIX-Thread mit C-Programmierung
Ein Thread ist eine kleine Instanz, die innerhalb eines Prozesses ausgeführt wird. Threads werden kombiniert, um einen Prozess zu erstellen, und sie haben einige Eigenschaften des Prozesses; daher gelten sie als Leichtbauverfahren. Thread ist nicht unabhängig, genau wie ein Prozess. Vielmehr arbeiten sie zusammen, um einen Prozess zu erstellen und zu erstellen and. Wie ein Prozess hat auch ein Thread seinen eigenen PC (Program Counter) und einen bestimmten Registersatz nebst Stackspace.

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.

So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...