跳到主要内容

mutex

互斥锁 std::mutex

最基本的互斥原语,配合 std::lock_guardstd::unique_lock 使用以确保异常安全。

#include <mutex>
#include <thread>
#include <vector>

int counter = 0;
std::mutex mtx;

void inc() {
std::lock_guard<std::mutex> lk(mtx); // RAII 自动解锁
++counter;
}

int main() {
std::vector<std::thread> v;
for (int i = 0; i < 8; ++i) v.emplace_back(inc);
for (auto &t : v) t.join();
}

扩展:读写性能可考虑 std::shared_mutex(C++17),条件同步用 std::condition_variable