温馨提示×

linux pthread_create如何获取线程id

小樊
81
2024-12-28 23:16:09
栏目: 智能运维

在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打印到控制台。

0