c++多線程全局變量修改,代碼示例

以下是一個使用C++多線程修改全局變量的代碼示例:


#include <iostream>
#include <thread>
#include <mutex>
std::mutex mtx; // 互斥鎖
int globalVariable = 0;
void threadFunction(int threadId) {
    std::lock_guard<std::mutex> lock(mtx); // 加鎖,保證互斥訪問
    // 修改全局變量
    globalVariable += threadId;
    // 打印修改后的全局變量值
    std::cout << "Thread " << threadId << ": Global Variable = " << globalVariable << std::endl;
}
int main() {
    std::thread t1(threadFunction, 1);
    std::thread t2(threadFunction, 2);
    std::thread t3(threadFunction, 3);
    t1.join();
    t2.join();
    t3.join();
    // 打印最終全局變量值
    std::cout << "Final Global Variable = " << globalVariable << std::endl;
    return 0;
}

上述代碼中,定義了一個全局變量globalVariable,并使用std::mutex定義了一個互斥鎖mtx。在線程函數threadFunction中,需要對globalVariable進行修改時,先使用std::lock_guard加鎖,以保證同一時間只有一個線程可以修改全局變量。修改后,打印出修改后的值。

main函數中,創建了三個線程,并使用std::thread類分別啟動這三個線程,線程函數為threadFunction。最后,通過調用join函數等待線程執行完畢,并打印最終的全局變量值。

主站蜘蛛池模板: 手机看片福利一区二区三区| 韩日午夜在线资源一区二区| 无码日本电影一区二区网站| 91视频一区二区| 久久久久人妻精品一区 | 无码人妻精品一区二区三区66 | 日韩精品无码Av一区二区| 国产综合无码一区二区色蜜蜜| 日本免费一区二区三区最新| 一区二区三区91| 亚洲色精品aⅴ一区区三区| 日韩精品无码一区二区三区| 少妇一夜三次一区二区| 午夜视频久久久久一区 | 精品国产一区二区三区久久久狼| 国产日韩精品视频一区二区三区| 国产精品乱码一区二区三| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产精品乱码一区二区三区| 亚洲午夜福利AV一区二区无码| 亚洲一区二区三区久久| 国产在线第一区二区三区| 中文字幕在线播放一区| 日韩精品区一区二区三VR| 大香伊蕉日本一区二区| 国产精品熟女一区二区| 亚洲日韩中文字幕无码一区| 国产精品女同一区二区久久| 日韩人妻精品无码一区二区三区 | 久久无码精品一区二区三区| 污污内射在线观看一区二区少妇| 国产成人综合一区精品| 国产一在线精品一区在线观看| 麻豆AV一区二区三区| 一区二区在线播放视频| 无码人妻精品一区二区三区蜜桃| 亚洲AV无码一区二区三区在线观看 | 97一区二区三区四区久久| 久久综合精品国产一区二区三区| 在线日产精品一区| 国产色综合一区二区三区|