欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > c++ 常用的锁及用法介绍和示例

c++ 常用的锁及用法介绍和示例

2024/10/23 19:30:39 来源:https://blog.csdn.net/jjjxxxhhh123/article/details/139860592  浏览:    关键词:c++ 常用的锁及用法介绍和示例

2024/6/21 14:20:10

在 C++ 中,常用的锁主要包括以下几种:std::mutex、std::recursive_mutex、std::timed_mutex 和 std::shared_mutex。这些锁可以帮助我们在多线程编程中保护共享数据,避免竞争条件。以下是每种锁的介绍及其用法示例:

  1. std::mutex
    std::mutex 是最基本的互斥锁,用于保护共享数据。

示例:

cpp
#include
#include
#include

std::mutex mtx;
int shared_data = 0;

void increment() {
std::lock_guardstd::mutex guard(mtx);
++shared_data;
std::cout << "Shared data: " << shared_data << std::endl;
}

int main() {
std::thread t1(increment);
std::thread t2(increment);

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

}
2. std::recursive_mutex
std::recursive_mutex 允许同一个线程多次锁定同一把互斥锁。这在递归函数或者需要在持有锁的情况下再次获取锁的场景中非常有用。

示例:

cpp
#include
#include
#include

std::recursive_mutex rec_

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com