在Linux中,使用pthread_create
创建线程后,可以通过pthread_self()
函数获取当前线程的线程ID
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *my_thread(void *arg) {
// 获取当前线程ID
pthread_t thread_id = pthread_self();
printf("当前线程ID: %lu\n", (unsigned long)thread_id);
// 线程执行的代码
return NULL;
}
int main() {
pthread_t thread1, thread2;
int rc;
// 创建第一个线程
rc = pthread_create(&thread1, NULL, my_thread, NULL);
if (rc != 0) {
perror("创建线程1失败");
exit(EXIT_FAILURE);
}
// 创建第二个线程
rc = pthread_create(&thread2, NULL, my_thread, NULL);
if (rc != 0) {
perror("创建线程2失败");
exit(EXIT_FAILURE);
}
// 等待线程结束
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0;
}
在这个示例中,我们创建了两个线程,并在每个线程中使用pthread_self()
获取当前线程的ID。然后我们将线程ID打印到控制台。