Maison > développement back-end > C++ > En langage C, la fonction pthread_equal() est utilisée pour comparer si deux ID de thread sont égaux.

En langage C, la fonction pthread_equal() est utilisée pour comparer si deux ID de thread sont égaux.

WBOY
Libérer: 2023-09-22 16:29:02
avant
1279 Les gens l'ont consulté

La fonction

En langage C, la fonction pthread_equal() est utilisée pour comparer si deux ID de thread sont égaux.

pthread_equal() est utilisée pour vérifier si deux threads sont égaux. Il renvoie 0 ou une valeur non nulle. Il renvoie une valeur non nulle pour des threads égaux, 0 sinon. La syntaxe de cette fonction est la suivante :

int pthread_equal (pthread_t th1, pthread_t th2);
Copier après la connexion

Voyons maintenant ce que fait réellement pthread_equal(). Dans le premier cas, nous vérifions le self-thread pour vérifier le résultat.

Exemple

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pthread.h>
pthread_t sample_thread;
void* my_thread_function(void* p) {
   if (pthread_equal(sample_thread, pthread_self())) { //pthread_self will return current thread id
      printf("Threads are equal</p><p>");
   } else {
      printf("Threads are not equal</p><p>");
   }
}
main() {
   pthread_t th1;
   sample_thread = th1; //assign the thread th1 to another thread object
   pthread_create(&th1, NULL, my_thread_function, NULL); //create a thread using my thread function
   pthread_join(th1, NULL); //wait for joining the thread with the main thread
}
Copier après la connexion

Sortie

Threads are equal
Copier après la connexion

Maintenant, si nous comparons entre deux fils différents, nous verrons le résultat.

Exemple

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pthread.h>
pthread_t sample_thread;
void* my_thread_function1(void* ptr) {
   sample_thread = pthread_self(); //assign the id of the thread 1
}
void* my_thread_function2(void* p) {
   if (pthread_equal(sample_thread, pthread_self())) { //pthread_self will return current thread id
      printf("Threads are equal</p><p>");
   } else {
      printf("Threads are not equal</p><p>");
   }
}

main() {
   pthread_t th1, th2;
   pthread_create(&th1, NULL, my_thread_function1, NULL); //create a thread using my_thread_function1
   pthread_create(&th1, NULL, my_thread_function2, NULL); //create a thread using my_thread_function2
   pthread_join(th1, NULL); //wait for joining the thread with the main thread
   pthread_join(th2, NULL);
}
Copier après la connexion

Sortie

Threads are not equal
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal