做网站上市的公司,成都网页制作设计培训,专业网上购物平台,指定关键字 网站有更新就提醒2024/6/21 14:20:10
在 C++ 中,常用的锁主要包括以下几种:std::mutex、std::recursive_mutex、std::timed_mutex 和 std::shared_mutex。这些锁可以帮助我们在多线程编程中保护共享数据,避免竞争条件。以下是每种锁的介绍及其用法示例: std::mutex std::mutex 是最基本的互…2024/6/21 14:20:10
在 C++ 中,常用的锁主要包括以下几种:std::mutex、std::recursive_mutex、std::timed_mutex 和 std::shared_mutex。这些锁可以帮助我们在多线程编程中保护共享数据,避免竞争条件。以下是每种锁的介绍及其用法示例:
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_