Fonction Pthread_create 3 C

Fonction Pthread_create 3 C
«À l'intérieur d'un processus, un fil est un petit flux de canal. Parce qu'ils partagent de nombreuses propriétés des processus, les threads sont souvent considérés comme des opérations légères. Parce que les threads, à l'exception des processus, ne sont pas complètement autonomes, ils partagent leurs scripts, leurs données et leurs fonctionnalités de système d'exploitation comme les fichiers ouverts et les signaux avec d'autres threads. Cependant, un thread, comme une tâche, a son compteur de programme (PC), le paramètre de registre et la mémoire de pile. Plusieurs sessions à l'intérieur d'un navigateur, par exemple, peuvent représenter des fils distincts."

MS Word utilise de nombreux threads, un pour le formatage textuel, un autre pour le traitement des entrées, et ainsi de suite. Dans cet article, nous vous informerons de l'utilisation de la fonction PTHEAD_CREATE 3 C pour créer un thread à l'aide du système Kali Linux. Commençons dans la coquille de Kali Linux maintenant. Nous devons créer un nouveau fichier C dans lequel nous créerons un programme C pour les threads. Ainsi, nous pouvons utiliser l'instruction tactile pour créer avec le titre «Créer un thread» et «.C ”Extension à sa fin. Le fichier a été créé avec succès conformément à la liste des instructions «LS» et affiche le contenu d'un répertoire de travail actuel.

Pour ouvrir ce fichier dans un éditeur VIM pour créer du code, nous avons utilisé l'instruction «VIM» comme indiqué ci-dessous. La commande doit contenir le nom complet d'un fichier avec le mot-clé «VIM». L'éditeur VIM vide ouvrira votre fichier C avec succès.

Exemple 01

Il est temps de créer un exemple pour la fonction pthread_create pour créer un nouveau thread dans le script C. Pour cela, nous commencerons notre code C avec les principales bibliothèques standard incluses avec le mot-clé «#include». Pour le flux d'entrée et de sortie standard dans le programme, nous avons besoin du «STdio.h »bibliothèque avec le« stdlib.h »et« unistd.Bibliothèque H ”.

Parallèlement à cela, nous utilisons le «pthread.h ”bibliothèque de C pour utiliser les fonctions de thread dans notre code C. Sans cette bibliothèque, l'utilisation de fonctions Pthread peut provoquer des erreurs. Nous avons initialisé une variable globale «globale» et lui avons attribué une valeur «0» au début du code après les en-têtes. Cette variable sera utilisée dans le reste du code.

Commençons par l'explication de ce code avec la fonction principale () de ce code. Le thread principal a déclaré une variable «var» et «threadid» variable pour le thread à l'aide du mot-clé «pthread_t."La boucle" pour "de 5 itérations a été utilisée pour créer un thread 5 fois avec l'utilisation de la fonction" pthread_create ". Nous l'avons passé une variable «threadid» pour compter le numéro de thread et en le faisant passer une fonction de thread «func» avec le même pointeur variable «ThreadId».

Après la création de 5 threads à l'aide de la boucle «pour», nous serons hors de la boucle, et la fonction «pthread_exit» sera utilisée pour quitter les exécutions du thread et terminer le programme. Maintenant, jetons un coup d'œil à la fonction de pointeur de fil «Func», en prenant le fil «ID» de la méthode principale () pour le titre en conséquence. L'argument «ID» passé par le principal () serait enregistré sur le pointeur «Threadid» de type entier. Une variable entière statique «var» est initialisée à 0, et nous avons post-incréments de la valeur des variables «var» et «globale."

En raison de la post-incidence, la valeur serait incrémentée en premier, je.e., «ID», puis enregistré à la variable. L'instruction PRINTF est là pour afficher l'ID de thread, la valeur de variable statique et la valeur de variable globale à la fois. Les valeurs des threads seraient 2, 4, 6, 8 et 10. Enregistrons simplement notre code et voyons ce qui se passe après la compilation.

Tout d'abord, nous compilons ce code C avec le compilateur «GCC» avec la commande «-lpthread» pour la fonction de thread Linux contenant l'option «-o» pour créer le fichier d'exécution «CreateTheread.out », comme indiqué ci-dessous. Le fichier a été compilé et créé avec succès.

Exécutons le fichier d'exécution sans erreur compilé avec le "./ "Commande comme indiqué ci-dessous. Les sorties de 5 threads ont affiché l'ID de thread, la valeur variable statique et la valeur variable globale avec l'incrément de 2.

Exemple 02

Dans cet exemple, nous utiliserons le même format de code. À partir de la méthode principale (), nous avons créé deux variables entières et une variable «thread_id» avec le mot-clé «pthread_t». La variable «ThreadId» a pris des informations d'une méthode main () en utilisant la fonction «pthread_self ()» et en la faisant passer à la fonction «func» qui a été utilisée pour créer un nouveau thread via la fonction «pthread_create ()». Tout ce que le fil nouvellement créé reviendrait sera enregistré dans la variable «CreateReturn» et vérifié dans l'instruction «IF». Si une erreur se produit, il utilisera l'instruction PRINTF pour l'afficher et le programme sera résilié. Sinon, après la création d'un fil, le programme dort pendant 1 seconde et utilise l'instruction printf pour afficher que le thread a été créé avec succès.

Après cela, le programme sera résilié. La fonction Func () Thread affichera ses informations sur le thread à l'aide de la fonction PTHREAD_ELLOSE () et les données de la fonction principale () transmises par argument comme indiqué en utilisant la fonction printf.

Nous avons compilé ce fichier et créé un fichier de code source d'exécution avec l'instruction «GCC».

Après l'exécution, nous avons également l'identifiant d'informations de la fonction func () et du fil principal ().

Chaque fois, l'exécution de ce programme générera différentes données pour les deux threads.

Conclusion

Les threads sont une approche commune pour promouvoir la synchronicité dans les applications. Les threads fonctionnent plus rapidement que les tâches pour une gamme de facteurs, je.e., La génération de threads est beaucoup plus rapide, la commutation de contexte parmi les threads semble être beaucoup plus rapide, la terminaison du thread est tellement plus facile et l'interaction du thread est beaucoup plus rapide. Dans cet article, nous avons discuté de l'utilisation de la fonction pthread_create ainsi que d'autres fonctions de thread pour l'afficher. Nous espérons que vous aimez.