C++11并发指南:深入解析std::mutex的使用方法?

2026-04-29 17:062阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2256个文字,预计阅读时间需要10分钟。

C++11并发指南:深入解析std::mutex的使用方法?

《C++11 并发指南二(std::thread详解)》中,主要介绍了std::thread的一些用法,并给出了两个小例子。本文将介绍std::mutex的用法。

Mutex,即互斥量,是一种同步机制,用于防止多个线程同时访问共享资源。在C++11中,std::mutex提供了线程安全的互斥锁。

以下是一个std::mutex的基本用法示例:

cpp#include #include #include

std::mutex mtx; // 创建互斥量

void print_message(int n) { std::lock_guard lock(mtx); // 使用lock_guard自动获取互斥锁 std::cout << Thread <

int main() { std::thread t1(print_message, 1); std::thread t2(print_message, 2);

t1.join(); // 等待线程t1完成 t2.join(); // 等待线程t2完成

return 0;}

在上面的例子中,我们创建了一个互斥量`mtx`和一个打印信息的函数`print_message`。在`print_message`函数中,我们使用`std::lock_guard`来自动获取互斥锁,确保在函数执行期间,只有一个线程可以访问共享资源(在这个例子中是`std::cout`)。通过调用`join`,我们等待两个线程`t1`和`t2`完成执行。

阅读全文

本文共计2256个文字,预计阅读时间需要10分钟。

C++11并发指南:深入解析std::mutex的使用方法?

《C++11 并发指南二(std::thread详解)》中,主要介绍了std::thread的一些用法,并给出了两个小例子。本文将介绍std::mutex的用法。

Mutex,即互斥量,是一种同步机制,用于防止多个线程同时访问共享资源。在C++11中,std::mutex提供了线程安全的互斥锁。

以下是一个std::mutex的基本用法示例:

cpp#include #include #include

std::mutex mtx; // 创建互斥量

void print_message(int n) { std::lock_guard lock(mtx); // 使用lock_guard自动获取互斥锁 std::cout << Thread <

int main() { std::thread t1(print_message, 1); std::thread t2(print_message, 2);

t1.join(); // 等待线程t1完成 t2.join(); // 等待线程t2完成

return 0;}

在上面的例子中,我们创建了一个互斥量`mtx`和一个打印信息的函数`print_message`。在`print_message`函数中,我们使用`std::lock_guard`来自动获取互斥锁,确保在函数执行期间,只有一个线程可以访问共享资源(在这个例子中是`std::cout`)。通过调用`join`,我们等待两个线程`t1`和`t2`完成执行。

阅读全文