91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ std::mutex如何使用

c++
小樊
157
2024-06-26 10:14:55
欄目: 編程語言

在C++中,std::mutex用于實現互斥訪問共享資源,以避免多個線程同時訪問造成的競爭條件。可以通過以下步驟來使用std::mutex:

  1. 包含頭文件:
#include <mutex>
  1. 創建std::mutex對象:
std::mutex mtx;
  1. 在需要進行互斥訪問的代碼塊中使用std::lock_guardstd::mutex來鎖定mutex:
{
    std::lock_guard<std::mutex> lock(mtx);
    // 訪問共享資源的代碼
}
  1. 當std::lock_guard對象超出作用域時,mutex會自動釋放鎖。

下面是一個簡單的示例,演示了如何使用std::mutex來保護共享資源的訪問:

#include <iostream>
#include <thread>
#include <mutex>

std::mutex mtx;
int sharedData = 0;

void incrementData() {
    std::lock_guard<std::mutex> lock(mtx);
    sharedData++;
}

int main() {
    std::thread t1([](){
        for (int i = 0; i < 1000; i++) {
            incrementData();
        }
    });

    std::thread t2([](){
        for (int i = 0; i < 1000; i++) {
            incrementData();
        }
    });

    t1.join();
    t2.join();

    std::cout << "Final value of sharedData: " << sharedData << std::endl;

    return 0;
}

在這個示例中,我們創建了一個std::mutex對象mtx來保護共享變量sharedData的訪問。兩個線程分別調用incrementData函數來增加sharedData的值,由于我們使用了std::lock_guardstd::mutex來鎖定mutex,在訪問共享資源時會確保只有一個線程能夠訪問,從而避免競爭條件。最后輸出sharedData的最終值。

0
富锦市| 山阳县| 津南区| 安平县| 嵊州市| 达尔| 重庆市| 石阡县| 桃源县| 宜阳县| 曲周县| 深圳市| 阿图什市| 彭州市| 平顺县| 都昌县| 富宁县| 宣武区| 黄石市| 元阳县| 孟村| 怀来县| 定远县| 漯河市| 长葛市| 日土县| 洛浦县| 绵竹市| 宁远县| 普兰店市| 建瓯市| 建平县| 鄂温| 张家界市| 舞钢市| 忻州市| 宁陕县| 英山县| 四平市| 洛扎县| 秀山|