C pthread_self de la fonction Utilisation

C pthread_self de la fonction Utilisation
La langue C propose beaucoup de bibliothèques utilisées à des fins spécifiques. L'une de ces bibliothèques est la bibliothèque «POSIX» de C qui est spécifiquement pour les systèmes POSIX. La bibliothèque POSIX peut vous permettre de faire des fils, d'obtenir leurs identifiants et de faire beaucoup de choses. L'une de ces fonctions est la fonction «pthread_self ()» qui est spécialement conçue pour obtenir l'ID du nouveau fil créé. Nous allons donc discuter de certains des exemples pour utiliser la fonction «pthread_self ()» en C. Commençons.

Nous avons commencé à implémenter cet article pour créer un fichier C nouvellement généré. Ce fichier peut être créé en utilisant l'instruction «Touch» d'Ubuntu dans son shell. Il est assez facile de le faire comme nous l'avons fait dans la commande indiquée dans la capture d'écran ci-jointe. Il existe plusieurs éditeurs intégrés disponibles dans Ubuntu pour simplement ouvrir et modifier le code C. Nous avons utilisé l'éditeur «Nano» intégré dans un terminal d'Ubuntu 20.04 Utilisation du mot-clé «nano» dans l'instruction.

Exemple 01:

Ainsi, nous commençons notre premier exemple d'utilisation de la fonction pthread_self () dans le code C pour obtenir «l'ID» d'un fil dans Ubuntu 20.04. Nous avons initialisé le code avec des en-têtes simples. Ces en-têtes sont les nécessités du code C. Sans ces en-têtes, notre code n'est d'aucune utilité, et nous ne pourrons pas obtenir le résultat requis. Nous avons inclus l'en-tête «STDIO» pour prendre la sortie d'entrée standard dans notre code. Le fichier d'en-tête de bibliothèque standard est également utilisé. Pendant ce temps, le fichier d'en-tête principal est «Pthread», qui a été inclus pour utiliser la bibliothèque de threads POSIX standard et ses fonctions dans le code C.

Une fois les bibliothèques incluses, nous avons utilisé la fonction de thread définie par l'utilisateur nommé «tâche» en prenant la référence du pointeur à «l'ID» d'un thread créé dans la fonction principale. Dans cette fonction de tâche, nous utilisons la clause printf pour publier une instruction montrant que nous exécutons le thread ayant un «ID particulier."Le thread" ID "qui a été obtenu de l'utilisation de la fonction" pthread_self "dans cette instruction sera affiché avec le texte de la coque via la clause" printf ".

La fonction «pthread_exit» est utilisée ici pour quitter le thread créé et renvoyer NULL à la fonction principale, comme le montre la clause «Retour» de la fonction «Tâche». Voici le code d'exécution principal d'un fichier. L'exécution du code C sera toujours lancée à partir de sa fonction principale (). La fonction principale () utilise la variable «pthread_t» de POSIX pour obtenir l'ID d'un thread créé par la fonction «pthread_create» dans la mutable «th». La simple clause «printf» est rejetée ici pour sortir sur le terminal que la fonction principale a exécuté ou exécuté en ce moment pour le moment. Après cela, la fonction "pthread_create" est là pour créer un nouveau fil. La variable «TH» a été référencée ici pour identifier ce fil par son identifiant et obtenir des paramètres nuls. La fonction «tâche» a été appelée ici pour l'utiliser comme exécuteur de thread ou afficher des informations concernant l'ID de thread. La fonction de tâche ne prend aucun argument selon le null. Une fois la fonction «tâche» exécutée et renvoyée «null», la fonction pthread_join () est utilisée ici pour arrêter ou accrocher le thread d'appel en attendant que le thread dirigée termine ou terminez. Le code C pour pthread_self () est terminé et compilé dans le shell.

Utilisons le compilateur «gcc» qui est déjà installé dans notre Ubuntu 20.04 Système. Votre code ne sortira pas la chose requise sur le shell sans lui. Donc, vous devez obtenir le compilateur «GCC». La compilation pour pthread_elf () est énorme, et nous sommes prêts à exécuter le code. Le code d'exécution est utilisé comme un seul mot-clé "./un.Out »comme ci-dessous. Vous pouvez voir que la fonction principale a été exécutée en premier et a créé un fil. À travers ce thread, la fonction «tâche» est appelée et il affiche l'ID de thread dans le shell. La fonction de tâche a été terminée et le thread principal () a été terminé. C'est ainsi que fonctionne la fonction «pthread_self».

Exemple 02:

Prenons une autre illustration pour jeter un œil à la fonction «pthread_self ()» dans le code C. Pour cela, nous mettrons à jour le même «moi.Fichier C ”vient d'être utilisé dans l'exemple ci-dessus. Nous ouvrirons le fichier au sein de l'éditeur d'Ubuntu nommé «Nano» comme indiqué sous.

Le code est recommencé avec certains en-têtes. L'en-tête de sortie d'entrée standard est utilisé pour obtenir l'entrée et l'afficher. Les bibliothèques «unistd» et «stdlib» sont utilisées pour utiliser certaines fonctions standard dans le code. La bibliothèque «Pthread» est un incontournable à utiliser ici pour utiliser les fonctions «POSIX» dans le code. Nous avons défini le nombre de threads à l'aide des «threads» de POSIX dans le code après les bibliothèques en utilisant l'instruction «IF» et l'utilisation du mot-clé «#define». Il est utilisé pour restreindre le nombre de threads utilisés dans le code à pas plus de 3. Après la déclaration des threads, nous avons utilisé la fonction définie par l'utilisateur «Affichage» du type de pointeur a été déclaré. Cette fonction prend l'argument «p» du type de pointeur. La variable longue «ID» est déclarée.

À la ligne suivante, la valeur variable du pointeur de référence est convertie en type «long» et a été affectée à la variable «ID."La clause printf utilise le numéro de thread et l'ID pour s'afficher sur le shell en utilisant" LD "et" LU "dans le texte. Après cela, le fil a été sorti. Maintenant, la fonction principale () est déclarée avec deux arguments. Le «pthread_t» est utilisé pour initialiser la liste «Th» ayant une taille de 3 threads à l'aide de «threads» déjà déclarés. Ensuite, une variable entière «res» est déclarée, et la boucle «pour» a été lancée. Il s'étendra jusqu'à 3 fois, et trois threads seront créés en utilisant la fonction "pthread_create". Cette fonction utilise les ID de trois threads consécutivement, l'un après l'autre, et la fonction d'affichage utilise ces ID comme argument pour pointer «p.«Si une erreur s'est produite en raison de la méthode« Affichage », le fil n'est pas terminé avec succès. Il renverra l'erreur à la variable des fonctions principales «res». Si une erreur se produit, l'instruction «printf» affichera cette erreur en utilisant la variable «Res» dans l'instruction «IF». Après cela, l'énoncé IF et le programme seront résiliés.

Maintenant, il est grand temps d'économiser et de compiler ce code C dans le système. Pour économiser, utilisez «Ctrl + S» tout en restant dans l'éditeur. Utilisez «Ctrl + X» pour quitter l'éditeur de code C. Après la commande de compilation «GCC», l'utilisation dans la coquille a réussi. Nous avons dirigé ce code avec le «./un.instruction out »et la sortie montre les ID de trois threads différents consécutivement.

Conclusion:

Cet article a été couvert les exemples simples et les plus simples de l'utilisation de la fonction pthread_join () de la bibliothèque POSIX en C. Tout d'abord, nous avons expliqué l'utilisation de la fonction «pthread_join ()» de POSIX dans la langue C. Après cela, nous avons discuté de certains des exemples pour illustrer son travail dans le programme C. Nous avons la foi que tous les exemples sont remarquables et sont facilement mis en œuvre sur l'éditeur Linux et exécutent sur le shell.