C pthread_detach Funktionsverbrauch

C pthread_detach Funktionsverbrauch
Wie wir alle wissen, sind die Threads der Hauptbestandteil jeder Verarbeitung, während sie in einer Multiprozessing -Umgebung arbeiten. Threading ist auch ein Konzept, das auch bei der Programmierung verwendet wird. C Sprache erstellt eine API namens "POSIX", damit die Verwendung von Threads verschiedener Zwecke in unserem Code verwendet werden. Einer dieser Threads ist die Funktion „pThread_detach ()“, mit der ein Thread vollständig identifiziert oder angegeben wird. Außerdem wird sichergestellt, dass alle von diesem bestimmten Thread verwendeten Ressourcen freigegeben werden. In diesem Artikel werden wir die Verwendung der Funktion pThread_detach () in der C -Sprache mithilfe des Ubuntu 20 argumentieren.04 System.

Beispiel 01:

Lassen Sie uns das erste Beispiel haben, um die Arbeit der Funktion pThread_detach zu sehen. Beginnen Sie mit dem Terminal, indem Sie es starten, ich.e., Strg+Alt+t. Wir werden spezifische Befehle verwenden, um eine C -Datei zu erstellen, sie zu öffnen und auszuführen. Der allererste Befehl besteht darin, damit eine neue Datei zu generieren, ich.e., berühren. Diese neue Datei muss in einem solchen Editor geöffnet werden, in dem wir Code hinzufügen und auch Änderungen daran vornehmen können. Wir haben hier den Redakteur "Nano" über seinen Befehl verwendet.

Wir haben die Implementierung des ersten Beispiels mit einigen Header -Dateien begonnen, die für diesen Code ausgeführt werden müssen. Unser Code enthält zwei benutzerdefinierte Funktionen und 1 Main () -Methode. Wenn die Ausführung immer mit der Main () -Methode beginnt, beginnen wir auch die Erklärung aus der Main (). Die main () -Funktion wird in seiner ersten Zeile die Methode "createt" bezeichnet. Jetzt wird die Steuerung der Funktion „Createt“ gegeben. Diese Funktion erstellt ein Objekt "Th", um die Thread-ID mit pthread_t integriert zu erhalten. Die printf -Anweisung zeigt, dass wir uns derzeit im Haupt -Thread oder 1 befindenst Funktion.

Die Funktion „pThread_create“ wird hier verwendet, um in dieser Funktion einen neuen Thread zu erstellen, der den Namen einer anderen Funktion verwendet.e., Neu und Bindung der "Th" -Variable, um die ID zu verweisen. Die Anweisung "If" wird verwendet, um zu überprüfen, ob diese Main () -Funktion und andere neu erstellte Threads gleich sind oder nicht. Dies wurde durchgeführt, indem die IDs beider Threads gleichgesetzt werden. Der "Th" -veränderliche Hinweis auf den neuen Thread und pThread_self () gibt die ID der Funktion "createt" zurück. Wenn beide Threads übereinstimmen, druckt es „Threads sind gleich“. Ansonsten sind „Threads nicht gleich.Die Funktion pThread_join () stellt sicher, dass die Hauptdhreopausführung beendet wird, bis der neue Thread ausgeführt und nicht abgeschlossen ist. Jetzt ist die Steuerung vollständig auf einen neuen Thread zugänglich.

In neuem Thread wird die Schlaffunktion verwendet. Das System schläft also 10 Sekunden lang und danach findet eine weitere Ausführung statt. Die Funktion pThread_detach () soll den neuen Thread vollständig von seiner Aufruffunktion abnehmen.e., „Createt.Hier wird PThread_self () verwendet, um die ID von 'neuem Thread' zum Ablösen herauszufinden. In der Printf -Anweisung wird angezeigt, dass dieser Funktionsthread jetzt beendet wird. Das System schläft für die nächsten 10 Sekunden wieder mit derselben „Schlaf ()“ -Methode von c. Die Funktion pThread_exit () ist hier, um den aktuellen Thread schnell zu beenden, der derzeit „neu ist."Jetzt wird die Steuerung der Funktion" Createt "zurückgegeben. Nachdem wir in diesem Haupt -Thread zurückgekehrt sind, haben wir eine neue Printf -Anweisung begegnet, um anzuzeigen, dass wir wieder in der Funktion „Createt“ sind. Jetzt müssen wir eine andere Funktion pThread_exit () verwenden, um auch den Thread „Createt“ zu schließen und die Steuerung an die Main () -Funktion zurückzugeben. Wir haben es also bisher gemacht und die Kontrolle wird zurückgegeben. Hier endet das Programm. Nach Abschluss des Programms müssen wir es mit dem C -Compiler auf Ubuntu 20 kompilieren.04.

Sie müssen sicherstellen, dass der C -Compiler bereits an Ihrer Endmaschine konfiguriert ist. Wir haben den GCC -Compiler in unserer Hülle verwendet. Der Name einer Datei mit dem Schlüsselwort "-lpThread" wird also verwendet, um den Code gemäß dem folgenden Bild zu kompilieren.

Nach dem Kompilieren des Code müssen wir ihn ausführen, um die Ausgabe zu sehen. Der Befehl zur Ausführung ist “./A.out ”wie unten. Wenn wir die Codedatei ausgeführt haben, wurde die Hauptfunktion und die Funktion main () als "createt" -Funktion gestartet. Die printf -Anweisung von "CreateTe" zeigte "Inneren Haupt Thread" und erstellte einen neuen Thread namens New. Es wurde ein Vergleich beider Threads durchgeführt, und beide Threads sind nicht gleich sind. Dann schläft ein System 10 Sekunden lang.

Nach 10 Sekunden verbindet es den erstellten Thread neu. Der neue Thread wurde von der Funktion „createt“ abgelöst und zeigt an, dass wir uns in der "neuen" Thread -Funktion befinden. Das System schläft für die nächsten 10 Sekunden wieder und verlässt den neuen Faden.

Jetzt ist die Steuerung auf den "Createt" -Faden zugeschnitten und hat herausgesprungen, dass wir wieder im Hauptfaden sind. Nach Abschluss des Threads „CreateTe“ wurde die Funktion main () die Kontrolle übergeben. Daher endet das Programm hier erfolgreich.

Beispiel 02:

Schauen wir uns das Beispiel für pThread_detach -Funktion in c an einen ganz anderen Blick an. Wir haben unseren C -Code mit denselben Bibliotheksheadern mit #include -Schlüsselwort gestartet, um unseren Code runnable zu machen. 1 main () Funktion und 1 benutzerdefinierte Funktion mit dem Namen „Neu“ ist definiert. Die "neue" Funktion wird als Threadfunktionen verwendet. Wir beginnen die Erklärung aus einer Main () -Methode. Das pthead_t mutable deklariert die "th" -Variable, um die Thread -ID eines neuen Threads zu erhalten. Die printf -Anweisung zeigt, dass wir die Hauptfunktion begonnen haben und 10 Sekunden Schlaf mit der Methode „Schlaf“ erfolgen. In der nächsten PRINTF wird angezeigt, dass eine Thread -Funktion erstellt wird und die Funktion pThread_create () von POSIX aus diesem Grund verwendet wird.

Das „TH“ wird als Parameter für die neue Funktion zur Erstellung von Threads verwendet, um die ID eines neuen Threads zu erhalten. Die Funktion pThread_join () ist hier, um die Ausführung einer Main () -Methode bis zum neuen Thread vollständig auszusetzen, i.e., Neu, führt aus. Jetzt wird die neue Funktion gestartet. Die Funktion pThread_detach () soll diese Funktion vollständig von der Funktion main () abnehmen, indem sie ihre Ressourcen zurücknehmen. Die Funktion pThread_exit () stellt sicher, dass der neue Thread nicht mehr ausgeführt wird. Daher wird seine printf -Anweisung nicht ausgeführt. Der Main () -Thread wird nach der Ausführung seiner Funktion pThread_exit () beendet.

Beginnen wir mit der Codekompilierung mit GCC. Gott sei Dank! Es war erfolgreich.

Also haben wir dasselbe benutzt “./A.OUT ”Anweisung auch hier. Die Funktion main () begann zuerst mit der Ausführung der Druckanweisung auszuführen. Jetzt schläft das System 10 Sekunden lang.

Nach 10 Sekunden wird die nächste Druckanweisung ausgeführt und angezeigt, dass der neue Thread erstellt wird. Die Steuerung ist auf einen neuen Thread zugeschnitten und wird von der main () -Funktion abgelöst, ohne die PRINTF -Anweisung auszuführen. Daher ist unsere Ausgabe so etwas wie unten.

Abschluss:

In diesem Bereich ging es also darum, die Funktion pThread_detach in C in C zu verwenden, um einen Thread vollständig vom Hauptaufruf -Thread zu lösen. Indem wir es ganz einfach halten und die Illustrationen kurz erklären, haben wir unser Bestes versucht, um Ihnen die in Ubuntu 20 implementierten Beispiele zu verstehen.04.