孟茹云 发表于 2025-6-4 19:56:09

C++中的各种锁

在多线程开发中,经常会遇到数据同步,很多情况下用锁都是一个很好的选择。C++中常用的锁主要有下面几种:
互斥锁(std::mutex)


[*]这是最基本的一种锁。它用于保护共享资源,在任意时刻,最多只有一个线程可以获取该锁,从而访问被保护的资源。当一个线程获取了互斥锁后,其他试图获取该锁的线程会被阻塞,直到持有锁的线程释放它。
[*]例如,在一个多线程程序中,如果多个线程需要访问和修改同一个全局变量,就可以使用互斥锁来确保在同一时间只有一个线程能够进行修改操作,避免数据竞争导致的错误结果。
1 #include2 #include3 #include45 std::mutex m; 6 int counter = 0; 78 void increment() { 9   m.lock();10   counter++;11   std::cout
页: [1]
查看完整版本: C++中的各种锁