linux pthread_create如何获取线程id

701
2024/12/29 0:31:28
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: linux怎么查看jvm参数