写一个初始化线程互斥锁的代码,for循环初始化4此
时间: 2024-03-11 21:50:55 浏览: 58
Linux线程管理必备:解析互斥量与条件变量的详解
好的,以下是一个简单的 C++ 代码示例,用于初始化一个互斥锁并进行4次循环初始化:
```c++
#include <iostream>
#include <thread>
#include <mutex>
using namespace std;
int main()
{
mutex mtx; // 初始化互斥锁
for (int i = 0; i < 4; i++) {
thread t([&](){
mtx.lock(); // 加锁
cout << "线程" << this_thread::get_id() << "获得了锁" << endl;
mtx.unlock(); // 解锁
});
t.join(); // 等待线程结束
}
return 0;
}
```
在上面的代码中,我们使用 `mutex` 类型来初始化互斥锁 `mtx`。然后,我们使用一个 `for` 循环创建4个线程,并在每个线程中通过 `mtx.lock()` 获得锁,输出线程ID和获得锁的信息,最后通过 `mtx.unlock()` 解锁。最后,我们通过 `t.join()` 等待线程结束。
这样,我们就成功地初始化了一个互斥锁,并使用它保护了线程的共享资源。
阅读全文