Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

pthread_equal() trong C

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