Heim > Backend-Entwicklung > C++ > Hauptteil

In der Sprache C wird die Funktion pthread_equal() verwendet, um zu vergleichen, ob zwei Thread-IDs gleich sind.

WBOY
Freigeben: 2023-09-22 16:29:02
nach vorne
1203 Leute haben es durchsucht

In der Sprache C wird die Funktion pthread_equal() verwendet, um zu vergleichen, ob zwei Thread-IDs gleich sind.

Die Funktion pthread_equal() wird verwendet, um zu prüfen, ob zwei Threads gleich sind. Es gibt 0 oder einen Wert ungleich Null zurück. Für gleiche Threads wird ein Wert ungleich Null zurückgegeben, andernfalls 0. Die Syntax dieser Funktion lautet wie folgt:

int pthread_equal (pthread_t th1, pthread_t th2);
Nach dem Login kopieren

Jetzt wollen wir sehen, was pthread_equal() tatsächlich macht. Im ersten Fall überprüfen wir den Selbstfaden, um das Ergebnis zu überprüfen.

Beispiel

#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
}
Nach dem Login kopieren

Ausgabe

Threads are equal
Nach dem Login kopieren

Wenn wir nun zwei verschiedene Threads vergleichen, sehen wir das Ergebnis.

Beispiel

#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);
}
Nach dem Login kopieren

Ausgabe

Threads are not equal
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonIn der Sprache C wird die Funktion pthread_equal() verwendet, um zu vergleichen, ob zwei Thread-IDs gleich sind.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage