pthread_equal(t1, t2) so sánh hai thread ID. Trả về non-zero nếu bằng, 0 nếu khác.
Cú pháp
int pthread_equal(pthread_t t1, pthread_t t2);
Ví dụ 1: So sánh cùng thread
pthread_t sample;
void* f1(void* p) {
if (pthread_equal(sample, pthread_self()))
printf("Bang nhau\n");
}
main() {
pthread_t t;
sample = t;
pthread_create(&t, NULL, f1, NULL);
pthread_join(t, NULL);
}
Kết quả: Bang nhau
Ví dụ 2: So sánh thread khác nhau
pthread_t sample;
void* f1(void* p) { sample = pthread_self(); }
void* f2(void* p) {
if (pthread_equal(sample, pthread_self()))
printf("Bang nhau");
else
printf("Khac nhau");
}
main() {
pthread_t t1, t2;
pthread_create(&t1, NULL, f1, NULL);
pthread_create(&t2, NULL, f2, NULL);
pthread_join(t1, NULL); pthread_join(t2, NULL);
}
Kết quả: Khac nhau