pthread_equal() फ़ंक्शन का उपयोग यह जांचने के लिए किया जाता है कि दो थ्रेड बराबर हैं या नहीं। यह 0 या गैर-शून्य मान देता है। समान थ्रेड्स के लिए, यह गैर-शून्य लौटाएगा, अन्यथा यह 0 देता है। इस फ़ंक्शन का सिंटैक्स नीचे जैसा है -
int pthread_equal (pthread_t th1, pthread_t th2);
आइए अब pthread_equal() को क्रिया में देखें। पहले मामले में, हम परिणाम की जांच करने के लिए स्व-सूत्र की जांच करेंगे।
उदाहरण
#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\n"); } else { printf("Threads are not equal\n"); } } 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 }
आउटपुट
Threads are equal
अब हम परिणाम देखेंगे, यदि हम दो अलग-अलग धागों के बीच तुलना करते हैं।
उदाहरण
#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\n"); } else { printf("Threads are not equal\n"); } } 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); }
आउटपुट
Threads are not equal