亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言多線程并行計算怎么實現

小億
111
2024-01-05 14:33:41
欄目: 編程語言

在C語言中實現多線程并行計算可以使用pthread庫,以下是一個簡單的示例代碼:

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

// 定義線程函數
void *thread_function(void *arg) {
    int *num = (int *)arg;
    int result = 0;
    
    // 計算累加和
    for (int i = 1; i <= *num; i++) {
        result += i;
    }
    
    // 返回計算結果
    pthread_exit((void *)result);
}

int main() {
    pthread_t threads[2];
    int numbers[2] = {100, 200};
    int results[2];
    
    // 創建兩個線程
    for (int i = 0; i < 2; i++) {
        pthread_create(&threads[i], NULL, thread_function, &numbers[i]);
    }
    
    // 等待線程執行完畢并獲取計算結果
    for (int i = 0; i < 2; i++) {
        pthread_join(threads[i], (void **)&results[i]);
    }
    
    // 輸出計算結果
    for (int i = 0; i < 2; i++) {
        printf("Thread %d result: %d\n", i, results[i]);
    }
    
    return 0;
}

這個示例代碼中,首先定義了一個線程函數thread_function,該函數接收一個整數參數,計算從1到該參數的累加和,并將結果作為線程的返回值。

main函數中,創建了兩個線程,并將不同的參數傳遞給每個線程。然后使用pthread_join函數等待線程執行完畢,并獲取計算結果。最后輸出計算結果。

需要注意的是,多線程并行計算可能存在線程間的競爭條件和同步問題,需要使用互斥量等機制來解決。上述示例代碼沒有考慮這些問題,僅用于演示多線程的基本用法。實際應用中,可能需要更加復雜的線程間通信和同步機制。

0
蒲城县| 平遥县| 铁岭市| 抚州市| 荆州市| 龙南县| 台州市| 云林县| 大悟县| 南宫市| 临朐县| 大港区| 黑河市| 新野县| 平罗县| 浮梁县| 宁远县| 海原县| 通榆县| 简阳市| 盈江县| 永平县| 宜宾县| 南丹县| 延津县| 保康县| 芜湖县| 和林格尔县| 武宣县| 铁力市| 开远市| 荆门市| 若羌县| 大新县| 峨边| 罗江县| 江阴市| 页游| 天长市| 温宿县| 抚远县|