GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wann sollte pthread_exit() und wann pthread_join() unter Linux verwendet werden?

Wie in den Openpub-Dokumentationen erklärt,

pthread_exit() beendet den Thread, der es aufruft.

In Ihrem Fall nennt es der Haupt-Thread wird beendet, während Ihre erzeugten Threads weiterhin ausgeführt werden. Dies wird meistens in Fällen verwendet, in denen der Haupt-Thread nur benötigt wird, um Threads zu erstellen und die Threads ihre Arbeit erledigen zu lassen

pthread_join unterbricht die Ausführung des Threads, der ihn aufgerufen hat, es sei denn, der Ziel-Thread wird beendet

Dies ist nützlich, wenn Sie auf das Beenden von Threads warten möchten, bevor Sie im Haupt-Thread weiterverarbeiten.


Beide Methoden stellen sicher, dass Ihr Prozess endet nicht, bevor alle Ihre Threads beendet sind.

Die Join-Methode hat Ihren Thread der main Funktion explizit auf alle Threads warten, die "beigetreten" werden sollen.

Die pthread_exit Methode beendet Ihre main kontrolliert funktionieren und einfädeln. main hat die Besonderheit, dass die Endung main ist Andernfalls würde Ihr gesamter Prozess einschließlich aller anderen Threads beendet.

Damit dies funktioniert, müssen Sie sicherstellen, dass keiner Ihrer Threads lokale Variablen verwendet, die in ihnen deklariert sind main Funktion. Der Vorteil dieser Methode ist, dass Ihr main muss nicht alle Threads kennen, die in Ihrem Prozess gestartet wurden, z. B. weil andere Threads selbst neue Threads erstellt haben, die main weiß nichts über.


pthread_exit beendet den aufrufenden Thread während pthread_join setzt die Ausführung des aufrufenden Threads aus, bis der Ziel-Thread die Ausführung abgeschlossen hat.

Sie sind in der offenen Gruppendokumentation ziemlich gut im Detail erklärt:

  • pthread_exit
  • pthread_join

Linux
  1. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  2. Antivirus unter Linux:Sollte ich es wirklich verwenden und wenn ja, wann brauche ich es?

  3. So installieren und verwenden Sie Flatpak unter Linux

  4. So installieren und verwenden Sie Traceroute unter Linux

  5. Welches Dateisystem soll verwendet werden, wenn sowohl Windows als auch Linux verwendet werden?

So installieren und verwenden Sie PuTTY unter Linux

So verwenden Sie die Befehle Pbcopy und Pbpaste unter Linux

Installieren und verwenden Sie Linuxbrew unter Linux OS

So installieren und verwenden Sie phpMyAdmin unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux