中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++互斥鎖怎么實現

小億
112
2023-07-13 15:46:37
欄目: 編程語言

在C++中,互斥鎖可以通過使用標準庫中的`std::mutex`來實現。

下面是一個簡單的示例:

```cpp

#include

#include

#include

std::mutex mtx;

void printHello(int id) {

std::lock_guard lock(mtx); // 加鎖
std::cout << "Hello from thread " << id << std::endl;

} // 自動解鎖
int main() {

std::thread t1(printHello, 1);

std::thread t2(printHello, 2);

t1.join();
t2.join();
return 0;

}``

在上面的示例中,`std::mutex`被用來創建了一個互斥鎖對象`mtx`。`std::lock_guard`是一個RAII(資源獲取即初始化)類,它會在構造時加鎖互斥鎖,在析構時解鎖互斥鎖,確保互斥鎖的正確使用。

在`printHello`函數中,通過創建`std::lock_guard`對象`lock`,實現對互斥鎖的加鎖。這樣,當兩個線程`t1`和`t2`分別調用`printHello`函數時,只有一個線程能夠獲得互斥鎖,另一個線程會等待直到互斥鎖被釋放。這樣就確保了每次只有一個線程能夠輸出"Hello from thread X"的信息。

最后,使用`t1.join()`和`t2.join()`等待兩個線程執行完畢,然后程序退出。

0
稷山县| 蒙山县| 措美县| 汝州市| 洪湖市| 石渠县| 佛冈县| 巴林右旗| 加查县| 平潭县| 丰都县| 宜兰市| 遵义县| 长武县| 太和县| 科技| 横峰县| 兴化市| 七台河市| 孝义市| 洛川县| 全南县| 北碚区| 佛冈县| 乾安县| 南宫市| 涪陵区| 吉首市| 苏州市| 比如县| 昌图县| 公安县| 无极县| 郓城县| 大冶市| 思茅市| 手游| 辉南县| 雅安市| 阜新| 自治县|