Pthread_create 3 c Funktion

Pthread_create 3 c Funktion
„In einem Prozess ist ein Faden ein kleiner Kanalfluss. Da sie viele der Eigenschaften von Prozessen teilen, werden Fäden häufig als leichte Operationen angesehen. Da Threads mit Ausnahme von Prozessen nicht vollständig in sich geschlossen sind, teilen sie ihre Skripte, Daten und Betriebssystemfunktionen wie offene Dateien und Signale mit anderen Threads. Ein Thread wie eine Aufgabe hat jedoch seinen Programmzähler (PC), die Registrierungseinstellung und den Stapelspeicher. Zum Beispiel könnten mehrere Sitzungen in einem Browser unterschiedliche Fäden darstellen.”

MS Word verwendet viele Threads, eine für die Textformatierung, eine andere für die Verarbeitung von Eingaben usw. In diesem Artikel informieren wir Sie über die Verwendung der Funktion pThread_create 3 C, um einen Thread mit dem Kali -Linux -System zu erstellen. Beginnen wir jetzt in der Hülle von Kali Linux. Wir müssen eine neue C -Datei erstellen, in der wir ein C -Programm für Threads erstellen werden. Daher können wir den Touch -Anweisungen verwenden, um mit dem Titel "Thread erstellen" und "zu erstellen".C ”Erweiterung am Ende. Die Datei wurde erfolgreich gemäß der Liste der LS -Anweisungen erstellt und zeigt den Inhalt eines aktuellen Arbeitsverzeichnisses an.

Um diese Datei in einem VIM -Editor zu öffnen, um Code zu erstellen. Der Befehl muss den vollständigen Namen einer Datei zusammen mit dem Schlüsselwort "VIM" enthalten. Der leere VIM -Editor öffnet Ihre C -Datei erfolgreich.

Beispiel 01

Es ist Zeit, ein Beispiel für die Funktion pThread_create zu erstellen, um einen neuen Thread innerhalb des C -Skripts zu erstellen. Hierzu starten wir unseren C -Code mit den wichtigsten Standardbibliotheken, die im Schlüsselwort "#include" enthalten sind. Für den Standardeingangs- und Ausgangsfluss innerhalb des Programms benötigen wir das „STDIO.H ”-Bibliothek zusammen mit der„ stdlib.H ”und„ Unistd.H ”Bibliothek.

Zusammen mit dem haben wir das „pThread.H ”Bibliothek von C, um Threadfunktionen in unserem C -Code zu verwenden. Ohne diese Bibliothek kann die Verwendung von PThread -Funktionen Fehler verursachen. Wir haben eine globale Variable „global“ initialisiert und ihm zu Beginn des Codes nach den Headern einen Wert „0“ zugewiesen. Diese Variable wird im Rest des Codes verwendet.

Beginnen wir mit der Erläuterung dieses Codes mit der Funktion main () dieses Code. Der Haupt -Thread hat eine Variable "var" und "ThreadID" für den Thread unter Verwendung des Schlüsselworts "pThread_t" deklariert."Die" für "Schleife von 5 Iterationen wurde verwendet, um einen Thread mit Verwendung der Funktion" pThread_create "in ihm 5 -mal zu erstellen. Wir haben es eine "ThreadID".

Nach der Erstellung von 5 Threads mit der Schleife "for" werden wir aus der Schleife sein, und die Funktion „pThread_exit“ wird verwendet, um die Ausführungen des Threads zu beenden und das Programm zu beenden. Schauen wir uns nun die Thread -Zeiger -Funktion „func“ an und nehmen Sie den Thread "ID" von der Main () -Methode, um sich entsprechend zu titieren. Das von der Main () übergebene Argument „ID“ würde auf dem Zeiger „Threadid“ des Ganzzahl -Typs gespeichert. Eine statische Ganzzahlvariable "var" wird auf 0 initialisiert, und wir haben den Wert von Variablen "var" und "global" nachgefragt.”

Aufgrund der Nachnahme würde der Wert zuerst inkrementiert werden, ich.e., "ID" und dann in der Variablen gespeichert. Die printf -Anweisung wird hier zur Anzeige der Thread -ID, des statischen Variablenwerts und des globalen Variablenwerts gleichzeitig angezeigt. Die Werte für Threads wären 2, 4, 6, 8 und 10. Sparen wir einfach unseren Code und sehen, was nach der Zusammenstellung passiert.

Zunächst werden wir diesen C-Code zusammen mit dem Befehl „-lpthread“ für die Linux-Thread-Funktion zusammenstellen, die die Option "-O" enthält, um die Ausführungsdatei "creatRead" zu erstellen, mit dem Befehl „GCC“ zusammen mit dem Befehl „-lpthread“.raus “, wie unten gezeigt. Die Datei wurde erfolgreich zusammengestellt und erstellt.

Lassen Sie uns die kompilierte fehlerfreie Ausführungsdatei mit der "ausführen./”Befehl wie unten gezeigt. Die Ausgänge von 5 Threads wurden die Thread -ID, den statischen Variablenwert und den globalen variablen Wert mit dem Inkrement von 2 angezeigt.

Beispiel 02

In diesem Beispiel werden wir dasselbe Codeformat verwenden. Ausgehend von der main () -Methode haben wir zwei Ganzzahlvariablen und eine Variable "Thread_id" mit dem Schlüsselwort "pThread_t" erstellt. Die Variable "ThreadID" hat Informationen über eine Main () -Methode verwendet, indem die Funktion „pThread_self ()“ verwendet wird und an die Funktion „Func“ übergeht, mit der ein neuer Thread über die Funktion „pthread_create ()“ erstellt wurde. Was auch immer der neu erstellte Thread zurückgibt. Wenn ein Fehler auftritt, wird die Printf -Anweisung verwendet, um dies anzuzeigen, und das Programm wird beendet. Andernfalls schläft das Programm nach der Erstellung eines Threads 1 Sekunde und verwendet die Printf -Anweisung, um anzuzeigen, dass der Thread erfolgreich erstellt wurde.

Danach wird das Programm gekündigt. In der Funktion von Func () werden ihre Threadinformationen mit der Funktion pThread_self () und die Daten der Funktion main () mit Argument wie unter Verwendung der Printf -Funktion übergeben.

Wir haben diese Datei zusammengestellt und eine Ausführungsquellcode -Datei mit der Anweisung „GCC“ erstellt.

Nach der Ausführung haben wir die Informations -ID der Funktion func () und des main () Threads auch erhalten.

Jedes Mal generiert die Ausführung dieses Programms unterschiedliche Daten für beide Threads.

Abschluss

Themen sind ein häufiger Ansatz zur Förderung der Synchronizität in Anwendungen. Threads laufen schneller als Aufgaben für eine Reihe von Faktoren, ich.e., Die Thread -Generierung ist viel schneller, der Kontext -Wechsel zwischen Threads scheint viel schneller zu sein, die Beendigung der Threads ist so viel einfacher und die Interaktion der Threads ist erheblich schneller. In diesem Artikel haben wir die Verwendung der Funktion pThread_create zusammen mit einigen anderen Thread -Funktionen erörtert, um diese anzuzeigen. Wir hoffen, dass es dir gefällt.