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

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

WBOY
WBOYnach vorne
2023-09-22 16:29:021144Durchsuche

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);

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
}

Ausgabe

Threads are equal

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);
}

Ausgabe

Threads are not equal

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen