pthread_equal() ফাংশনটি দুটি থ্রেড সমান কিনা চেক করে। সমান হলে non-zero, না হলে ০ রিটার্ন করে।
সিনট্যাক্স: int pthread_equal(pthread_t th1, pthread_t th2);
উদাহরণ ১: সেলফ থ্রেড চেক
#include <stdio.h>
#include <pthread.h>
pthread_t sample_thread;
void* my_thread_function(void* p) {
if (pthread_equal(sample_thread, pthread_self()))
printf("Threads are equal\n");
else
printf("Threads are not equal\n");
return NULL;
}
int main() {
pthread_t th1;
sample_thread = th1;
pthread_create(&th1, NULL, my_thread_function, NULL);
pthread_join(th1, NULL);
return 0;
}
আউটপুট
Threads are equal
উদাহরণ ২: দুটি আলাদা থ্রেড চেক
#include <stdio.h>
#include <pthread.h>
pthread_t sample_thread;
void* my_thread_function1(void* ptr) {
sample_thread = pthread_self();
return NULL;
}
void* my_thread_function2(void* p) {
if (pthread_equal(sample_thread, pthread_self()))
printf("Threads are equal\n");
else
printf("Threads are not equal\n");
return NULL;
}
int main() {
pthread_t th1, th2;
pthread_create(&th1, NULL, my_thread_function1, NULL);
pthread_create(&th2, NULL, my_thread_function2, NULL);
pthread_join(th1, NULL);
pthread_join(th2, NULL);
return 0;
}
আউটপুট
Threads are not equal