pthread_create-Funktion Funktionseinführung pthread_create ist eine Thread-Erstellungsfunktion in der UNIX-Umgebung. Header-Dateien #include<pthread.h> Funktionsdeklaration int pthread_create(pthread_t *tidp einschränken,const pthread_attr_t *attr_einschränken,void*(*start_rtn)(void*),void *Argument einschränken); Rückgabewert Bei Erfolg wird 0 zurückgegeben, andernfalls eine Fehlernummer. Parameter Der erste Parameter ist ein Zeiger auf die Thread-Kennung. Der zweite Parameter wird zum Festlegen von Thread-Attributen verwendet. Der dritte Parameter ist die Adresse der Funktion, die der Thread ausführt. Das letzte Argument sind die Parameter, mit denen die Funktion ausgeführt werden soll. Beachten Denken Sie beim Kompilieren daran, den Parameter -lpthread hinzuzufügen, um die statische Linkbibliothek aufzurufen. Weil pthread nicht die Standardbibliothek des Linux-Systems ist. pthread_join-Funktion Funktionseinführung Die Funktion pthread_join wird verwendet, um auf das Ende eines Threads zu warten. Der Funktionsprototyp ist: extern int pthread_join __P (pthread_t __th, void **__thread_return); Parameter: Der erste Parameter ist die Thread-Kennung, auf die gewartet wird. Der zweite Parameter ist ein benutzerdefinierter Zeiger, der zum Speichern des Rückgabewerts des gewarteten Threads verwendet werden kann. Beachten Diese Funktion ist eine Thread-Blockierungsfunktion. Die Funktion, die sie aufruft, wartet, bis der wartende Thread beendet ist. Wenn die Funktion zurückkehrt, werden die Ressourcen des wartenden Threads zurückgefordert. Bei erfolgreicher Ausführung wird 0 zurückgegeben, bei fehlgeschlagener Ausführung eine Fehlernummer. Beispiel: #include <stdio.h> #include<stdlib.h> #include<pthread.h> /*Deklarieren Sie die Struktur*/ Strukturmitglied { int-num; Zeichen *Name; }; /* Thread pthread definieren */ statisches void * pthread(void *arg) { Strukturmitglied *temp; /* Thread pthread wird gestartet*/ printf("pthread starten!\n"); /* Den Hauptthread weiter ausführen lassen */ schlaf(2); /* Drucke die übergebenen Parameter aus */ temp = (Strukturmitglied *)arg; printf("Mitglied->num:%d\n",temp->num); printf("Mitglied->Name:%s\n",temp->Name); gibt NULL zurück; } /* Hauptfunktion */ int main(int agrc,char*argv[]) { pthread_t tidp; Strukturmitglied *b; /* Weisen Sie der Strukturvariablen b einen Wert zu*/ b = (Strukturmitglied *)malloc(sizeof(Strukturmitglied)); b->num=1; b->name="mlq"; /* Einen Thread erstellen (pthread) */ wenn ((pthread_create(&tidp, NULL, pthread, (void*)b)) == -1) { printf("Fehler erstellen!\n"); Rückgabe 1; } /* Zuerst den Thread pthread laufen lassen*/ Schlaf (1); /* Thread pthread schläft für 2 s, dann kann main zuerst ausgeführt werden*/ printf("mian weiter!\n"); /* Warte auf die Freigabe des Threads pthread*/ wenn (pthread_join(tidp, NULL)) { printf("Thread wird nicht beendet...\n"); Rückgabe -2; } gebe 0 zurück; } Kompilierungs- und Ausführungsergebnisse Die Kompilierungs- und Ausführungsergebnisse sind in der folgenden Abbildung dargestellt. Sie können sehen, dass der Hauptthread main und der Thread pthread abwechselnd ausgeführt werden. Das heißt, nachdem wir den Thread pthread erstellt hatten, wurden beide Threads ausgeführt, was beweist, dass die Erstellung erfolgreich war. Darüber hinaus können Sie sehen, dass beim Erstellen des Threads pthread die übergebenen Parameter korrekt gedruckt werden. Dies ist das Ende dieses Artikels über die spezifische Verwendung von pthread_create in Linux zum Erstellen von Threads. Weitere relevante Linux-Inhalte zu pthread_create finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: js realisiert die Funktion zum Klicken zum Wechseln der Karte
>>: Das Front-End muss wissen, wie Bilder verzögert geladen werden (drei Methoden)
Heute werde ich Ihnen zeigen, wie Sie das Linux-S...
Szenario mit dem Problem des Seitenumblätterns B ...
Die Docker-Veröffentlichungsmethode bietet viele ...
Informationen finden Einige im Internet gefundene...
In diesem Artikel wird der spezifische Code zur I...
Anzeigen der abhängigen Bibliotheken von so oder ...
Inhaltsverzeichnis Vorwort 1. Installation 1. Dow...
Beispiel für einen WeChat-Applet-Rechner. Zu Ihre...
Inhaltsverzeichnis rem vw An UI-Frameworks von Dr...
Inhaltsverzeichnis 1. Kapselungs-API 2. Globale T...
Inhaltsverzeichnis 1. Einleitung: 2. Die erste Id...
Inhaltsverzeichnis Vorwort 1. Was sind Mixins? 2....
Ich persönlich bin der Meinung, dass das Entwickl...
Genau wie bei Code können Sie den Tabellen und Sp...
Dockerfile ist eine Textdatei, die zum Erstellen ...