溫馨提示×

linux pthread_join如何獲取線程返回值

小樊
118
2024-12-29 12:16:24
欄目: 智能運維

在Linux中,使用pthread_join()函數可以等待一個線程完成執行并獲取其返回值

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void *my_thread(void *arg) {
    int *result = (int *)arg;
    *result = 42; // 設置線程返回值
    return NULL;
}

int main() {
    pthread_t thread_id;
    int result;

    // 創建線程并傳遞一個指向整數的指針作為參數
    if (pthread_create(&thread_id, NULL, my_thread, &result) != 0) {
        perror("Failed to create thread");
        exit(EXIT_FAILURE);
    }

    // 等待線程完成并獲取其返回值
    if (pthread_join(thread_id, &result) != 0) {
        perror("Failed to join thread");
        exit(EXIT_FAILURE);
    }

    printf("Thread returned: %d\n", result);

    return 0;
}

在這個示例中,我們創建了一個名為my_thread的線程函數,它接受一個指向整數的指針作為參數。在主線程中,我們使用pthread_create()創建一個新線程,并將result變量的地址傳遞給新線程。然后,我們使用pthread_join()等待新線程完成執行,并將其返回值存儲在result變量中。最后,我們打印出新線程的返回值。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女