Dalam bahasa C, fungsi pthread_equal() digunakan untuk membandingkan sama ada dua ID thread adalah sama.

WBOY
Lepaskan: 2023-09-22 16:29:02
ke hadapan
1203 orang telah melayarinya

Fungsi

Dalam bahasa C, fungsi pthread_equal() digunakan untuk membandingkan sama ada dua ID thread adalah sama.

pthread_equal() digunakan untuk menyemak sama ada dua utas adalah sama. Ia mengembalikan nilai 0 atau bukan sifar. Ia mengembalikan nilai bukan sifar untuk benang yang sama, 0 sebaliknya. Sintaks fungsi ini adalah seperti berikut:

int pthread_equal (pthread_t th1, pthread_t th2);
Salin selepas log masuk

Sekarang mari kita lihat apa yang pthread_equal() sebenarnya lakukan. Dalam kes pertama, kami menyemak benang diri untuk menyemak hasilnya.

Contoh

#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
}
Salin selepas log masuk

Output

Threads are equal
Salin selepas log masuk

Sekarang kalau kita bandingkan antara dua benang berbeza kita akan nampak hasilnya.

Contoh

#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);
}
Salin selepas log masuk

Output

Threads are not equal
Salin selepas log masuk

Atas ialah kandungan terperinci Dalam bahasa C, fungsi pthread_equal() digunakan untuk membandingkan sama ada dua ID thread adalah sama.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan