C++11并发编程:深入解析std::thread的使用方法?

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

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

C++11并发编程:深入解析std::thread的使用方法?

上一篇博客《C++11+并发指南一(C++11+多线程初探)》中,仅提到了std::thread的基本用法,并给出一个最简单的例子。本文将详细介绍std::thread的用法。

std::thread在thread头文件中定义,用于创建和管理线程。其基本用法如下:

1. 创建线程:使用std::thread构造函数创建线程,并传入要执行的函数和参数。

2.等待线程结束:使用join()、detach()或wait_for_all()等方法等待线程结束。

3.线程同步:使用互斥锁(mutex)、条件变量(condition variable)等同步机制保证线程间的数据安全。

以下是一个简单的例子:

cpp

#include #include

void printNumber(int n) { for (int i=0; i

int main() { std::thread t1(printNumber, 10); std::thread t2(printNumber, 20);

t1.join(); // 等待t1线程结束 t2.join(); // 等待t2线程结束

return 0;}

在上面的例子中,我们创建了两个线程t1和t2,分别执行printNumber函数,并传入不同的参数。使用join()方法等待每个线程执行完毕后再继续执行main函数。

阅读全文

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

C++11并发编程:深入解析std::thread的使用方法?

上一篇博客《C++11+并发指南一(C++11+多线程初探)》中,仅提到了std::thread的基本用法,并给出一个最简单的例子。本文将详细介绍std::thread的用法。

std::thread在thread头文件中定义,用于创建和管理线程。其基本用法如下:

1. 创建线程:使用std::thread构造函数创建线程,并传入要执行的函数和参数。

2.等待线程结束:使用join()、detach()或wait_for_all()等方法等待线程结束。

3.线程同步:使用互斥锁(mutex)、条件变量(condition variable)等同步机制保证线程间的数据安全。

以下是一个简单的例子:

cpp

#include #include

void printNumber(int n) { for (int i=0; i

int main() { std::thread t1(printNumber, 10); std::thread t2(printNumber, 20);

t1.join(); // 等待t1线程结束 t2.join(); // 等待t2线程结束

return 0;}

在上面的例子中,我们创建了两个线程t1和t2,分别执行printNumber函数,并传入不同的参数。使用join()方法等待每个线程执行完毕后再继续执行main函数。

阅读全文