Pthread_kill 3 c Funktion

Pthread_kill 3 c Funktion
„Wir können zahlreiche Fäden erstellen, um den gleichzeitigen Prozessfluss zu unterstützen. Einer dieser POSIX -Threads ist die Funktion pThread_kill () 3 C. Der Zweck der phread_kill () -Methode besteht darin, ein Signal an den festgelegten Thread zu fordern. Sie können einen weiteren Prozess alarmieren, während Sie die Funktion pThread_kill aufrufen. Trotz seines Namen. Pthread Kill () bietet 0, wenn er erfolgreich ist, einen Fehlercode, wenn er nicht erfolgreich ist und kein Signal geliefert wird. Innerhalb dieses Handbuchs werden wir die Verwendung der pThread_kill -Methode zeigen.”

Möglicherweise möchten Sie unter folgenden Umständen Nachrichten zwischen den Prozessen mitteilen: Wenn eine Aufgabe abgeschlossen ist, wird der untergeordnete Prozess, der vom übergeordneten Prozess gestartet wurde. Der Kinderprozess hat möglicherweise eine unendliche Schleife durchgeführt. Wenn ein Fehler oder ein anderes Ereignis wie Deadlock auftritt, muss ein Prozess, der Teil einer Gruppe ist. Während der Koordinierung müssen zwei Prozesse mit dieser Funktion synchronisieren. Zum Beispiel könnte ein Thread dies nutzen, um zu beeinflussen, wie ein Signal an eine Gruppe anderer Threads ausgestrahlt wird. Nachfolgend folgt unten die Syntax der Funktion pThead_kill () von c. Signal.H -Header -Datei wird verwendet, weil alle diese Funktionen in dieser Header -Datei definiert sind.

#enthalten
int pthread_kill (pthread_t thread_id, int signal);

Die pthread Kill () -Methode würde Fehler überprüfen, wenn der Signalwert auf 0 gesetzt würde, aber in Wirklichkeit wurde für den Thread kein Signal für diese Funktion geliefert. Die Funktion gibt Null zurück, wenn sie ihren Job abgeschlossen hat. Wenn nicht, wird von der Funktion ein numerischer Fehler zurückgegeben. Es wird kein Signal geliefert, wenn die PThread Kill () -Methode fehlschlägt. Wenn einer der folgenden Auftritte auftritt: Es kann kein Thread entdeckt werden, der dem durch die mitgelieferte Thread -ID angegeben; Eine ungültige oder nicht authorisierte Signalnummer ist der Wert des Signalarguments.

Erstellen wir eine C -Programmierdatei, um die Funktion pThread_kill () zu verstehen. Mit dem Befehl VIM müssen wir eine Codedatei erstellen und die Datei als pThread_kill speichern.C. Um das gewünschte Ergebnis zu erhalten, geben Sie den nachfolgenden Befehl auf den Bildschirm ein.

Hier ist der Code -Snippet; In den ersten Codezeilen haben wir die Header -Dateien eingeschlossen. Wir drucken einfach die Nachricht aus dem Thread, der jetzt in der Methode display_output ausgeführt wird. Wir haben in der Hauptfunktion eine Ganzzahl -Variable deklariert, um den Thread -Status zu erkennen. Die Num -Variable wurde initialisiert und die Thread -Erstellungsmethode wurde übergeben. Pthread t wird verwendet, um den Faden eindeutig zu identifizieren. Mit der PThread Create -Methode haben wir dann einen Thread erzeugt. Im Falle eines Fehlerns sehen Sie, ob diese Methode einen Wert zurückgibt, der weniger als 0 beträgt, was darauf hinweist, dass der Prozess der Fadenerstellung fehlgeschlagen ist.

Danach wird der Faden zwei Sekunden lang eingeschlafen, indem er die Schlafmethode aufruft. Das Phread -Tötungsverfahren wurde dann aufgerufen, und die Thread -ID und das Signal Sigusr1 wurden an sie übergeben. Die Verwendung von Sigusr1- und Sigusr2 -Signalen hängt von den Anforderungen des Benutzers ab. Wenn Sie in der Anwendung, die das Signal empfängt. Die nächste Zeile führt eine bedingte Überprüfung durch. Im Erfolg haben wir die phread_join -Methode bezeichnet, die einen einfachen Mechanismus bietet, der es einer Anwendung ermöglicht, auf ein Faden zu warten, um fertig zu werden. Später überprüften wir, ob dieser Vorgang eine Fehlermeldung nicht drucken konnte.

Schließen Sie den VIM -Editor, nachdem Sie den Code eingegeben haben. Kompilieren Sie den Code anschließend mit einem C -Compiler Ihrer Wahl und stellen Sie sicher, dass die gewünschte Ausgabedatei erstellt wird. Geben Sie zum Erstellen des Code die unten angezeigten Befehle ein. Auf dem Terminalbildschirm werden alle Fehler angezeigt, wenn sie auftreten. Nach einer erfolgreichen Zusammenstellung wird auf dem Bildschirm nichts erscheinen.

Führen Sie die Ausgabedatei aus, um die Nachricht zu sehen, dass der Thread ausgeführt wird, und zeigt an, dass es keine Fehler gab. Um das gewünschte Ergebnis zu erhalten, geben Sie den nachfolgenden Befehl auf den Bildschirm ein.

Nehmen wir einige Änderungen im Code vor. Geben Sie also den Befehl VIM zusammen mit dem C -Dateinamen ein. Um das gewünschte Ergebnis zu erhalten, geben Sie den nachfolgenden Befehl auf den Bildschirm ein.

Die bedingte Anweisung nach der Änderung der Thread -Verbindungsmethode, bei der wir überprüft haben, ob die Thread -Join -Methode die Thread -Statusvariable auf größer oder gleich 1 festgelegt hat, was auf einen erfolgreichen Vorgang hinweist, fehlt in den folgenden Codezeilen. Wenn dies erfolgreich ist, zeigen wir eine Nachricht auf dem Bildschirm mit der Aufschrift: „Thread -By -Verbindungen erfolgreich.”. Eine weitere geringfügige Änderung im Code ist, dass die Funktion thread_kill jetzt nach der bedingten Anweisung der Thread_Join -Funktion platziert wird. Dies bedeutet, dass die Kommunikation mit der Interprozess jetzt nach der Funktion von Thread_Join stattfindet.

Um die Ausgabedatei zu aktualisieren, kompilieren Sie den Code neu neu zusammen. In diesem Befehl wird die C -Datei kompiliert, die den Threadcode enthält. Um das gewünschte Ergebnis zu erhalten, geben Sie den nachfolgenden Befehl auf den Bildschirm ein.

Führen Sie jetzt den Code aus, und Sie werden sehen, dass er die Thread -Verbindungsmethode auf dem Bildschirm erfolgreich gedruckt hat. Die Thread -Ausführung wird vor dem Aufruf zur Ausgangsfunktion Anzeige angezeigt. Um das gewünschte Ergebnis zu erhalten, geben Sie den nachfolgenden Befehl auf den Bildschirm ein.

Abschluss

Hier handelt. Wir haben ein detailliertes Beispiel für C unter Verwendung der darin enthaltenen pThread_kill -Funktion erörtert, um ein Signal an eine bestimmte Methode zu senden, wenn es um die Beendigung einer Aufruffunktion geht. Hier geht es um pThread_kill. Hoffe du magst es.