GNU/Linux >> Tutoriels Linux >  >> Linux

Quand utiliser pthread_exit() et quand utiliser pthread_join() sous Linux ?

Comme expliqué dans les documentations openpub,

pthread_exit() quittera le thread qui l'appelle.

Dans votre cas puisque le principal l'appelle, le thread principal se terminera tandis que vos threads générés continueront à s'exécuter. Ceci est principalement utilisé dans les cas où le thread principal n'est requis que pour générer des threads et laisser les threads faire leur travail

pthread_join suspendra l'exécution du thread qui l'a appelé à moins que le thread cible ne se termine

Ceci est utile dans les cas où vous souhaitez attendre que le ou les threads se terminent avant de poursuivre le traitement dans le thread principal.


Les deux méthodes garantissent que votre processus ne se termine pas avant la fin de tous vos fils de discussion.

La méthode de jointure a votre fil du main fonction attend explicitement tous les threads qui doivent être "rejoints".

Le pthread_exit la méthode termine votre main fonctionner et enfiler de manière contrôlée. main a la particularité de se terminer par main sinon, cela mettrait fin à l'ensemble de votre processus, y compris tous les autres threads.

Pour que cela fonctionne, vous devez être sûr qu'aucun de vos threads n'utilise de variables locales déclarées à l'intérieur main fonction. L'avantage de cette méthode est que votre main n'a pas besoin de connaître tous les threads qui ont été démarrés dans votre processus, par exemple parce que d'autres threads ont eux-mêmes créé de nouveaux threads qui main ne sait rien.


pthread_exit termine le thread appelant tant que pthread_join suspend l'exécution du thread appelant jusqu'à ce que les threads cibles terminent leur exécution.

Ils sont assez bien expliqués en détail dans la documentation du groupe ouvert :

  • pthread_exit
  • pthread_join

Linux
  1. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  2. Antivirus sur Linux :dois-je vraiment l'utiliser et si oui, quand en ai-je besoin ?

  3. Comment installer et utiliser Flatpak sous Linux

  4. Comment installer et utiliser Traceroute sous Linux

  5. Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

Comment installer et utiliser PuTTY sous Linux

Comment utiliser les commandes Pbcopy et Pbpaste sous Linux

Installer et utiliser Linuxbrew dans le système d'exploitation Linux

Comment installer et utiliser phpMyAdmin sous Linux

Comment installer et utiliser la commande fd sous Linux

Comment installer et utiliser Nu Shell sous Linux