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

溫馨提示×

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
修武县| 十堰市| 桑日县| 镇平县| 广汉市| 崇阳县| 辽阳市| 朝阳区| 阆中市| 宁化县| 新闻| 东兰县| 平定县| 桂阳县| 四平市| 大冶市| 筠连县| 彰化市| 进贤县| 会昌县| 宁陵县| 中方县| 年辖:市辖区| 建水县| 丰宁| 托克托县| 米易县| 芒康县| 资兴市| 尉氏县| 青冈县| 五台县| 北辰区| 晴隆县| 嵊州市| 科技| 新宁县| 明水县| 泽普县| 通山县| 浑源县|