溫馨提示×

c++ pthread如何傳遞參數(shù)

c++
小樊
100
2024-06-25 16:28:41
欄目: 編程語言

在C++中使用pthread傳遞參數(shù)的方法如下:

  1. 創(chuàng)建一個結構體,將需要傳遞的參數(shù)封裝在結構體中。
struct ThreadArgs {
    int arg1;
    char arg2;
    float arg3;
};
  1. 在創(chuàng)建線程時,將結構體作為參數(shù)傳遞給線程的入口函數(shù)。
void* threadFunction(void* args) {
    ThreadArgs* threadArgs = (ThreadArgs*)args;
    
    // 使用傳遞的參數(shù)
    int arg1 = threadArgs->arg1;
    char arg2 = threadArgs->arg2;
    float arg3 = threadArgs->arg3;
    
    // 執(zhí)行線程的任務
    
    delete threadArgs; // 注意釋放內存
    return NULL;
}

int main() {
    pthread_t thread;
    
    // 創(chuàng)建結構體并設置需要傳遞的參數(shù)
    ThreadArgs* args = new ThreadArgs;
    args->arg1 = 10;
    args->arg2 = 'A';
    args->arg3 = 3.14;
    
    // 創(chuàng)建線程并傳遞參數(shù)
    pthread_create(&thread, NULL, threadFunction, (void*)args);
    
    // 等待線程結束
    pthread_join(thread, NULL);
    
    return 0;
}

通過封裝參數(shù)到結構體中,可以很方便地傳遞多個參數(shù)給線程的入口函數(shù)。在傳遞完參數(shù)后,需要注意釋放結構體的內存,以避免內存泄漏。

0