首頁 > 後端開發 > C++ > 主體

在C語言中,pthread_equal()函數用來比較兩個執行緒ID是否相等

WBOY
發布: 2023-09-22 16:29:02
轉載
1203 人瀏覽過

在C語言中,pthread_equal()函數用來比較兩個執行緒ID是否相等

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</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
}
登入後複製

輸出

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</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);
}
登入後複製

輸出

Threads are not equal
登入後複製

以上是在C語言中,pthread_equal()函數用來比較兩個執行緒ID是否相等的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板