int pthread_equal(pthread_t threadId1, pthread_t threadId2)
比较两个线程是否是同一个线程。
pthread_t
的定义如下:
typedef unsigned long int pthread_t;
pthread_t thread
为线程ID
。
若相等,则返回非0
。
若不等,则返回0
。
#include<stdio.h>
#include<pthread.h>
/* 线程要执行的函数 */
void* run(void *args) {
printf("running start\n");
for(int i = 1; i <= 100; i++) {
printf("running %d\n", i);
}
printf("running end\n");
return NULL;
}
int main() {
pthread_t threadId;
int rc = pthread_create(&threadId, NULL, run, NULL);
if (0 == rc) {
printf("create thread success\n");
if (pthread_equal(threadId, pthread_self())) {
printf("equal\n");
} else {
printf("not equal\n");
}
pthread_exit((void*)"main thread exit");
return 0;
} else {
printf("create thread fail!\n");
return 1;
}
}
使用cc命令编译:
cc -lpthread -o test_pthread test.c