std::thread(
时间: 2024-04-20 14:21:03 浏览: 128
C++11 并发指南之std::thread 详解
std::thread是C++11标准库中的一个类,用于创建和管理线程。它提供了一种方便的方式来并发执行代码,可以在多个线程中同时执行不同的任务。
使用std::thread可以创建一个新的线程,并将要执行的函数作为参数传递给它。线程会在后台执行这个函数,并且可以与其他线程并发地执行。
以下是std::thread的一些重要特性和用法:
1. 创建线程:可以通过传递一个可调用对象(函数、函数指针、lambda表达式等)来创建线程。例如:
```
void myFunction() {
// 线程要执行的代码
}
std::thread myThread(myFunction); // 创建一个新线程,并执行myFunction函数
```
2. 线程的执行:创建线程后,可以通过调用线程对象的join()函数来等待线程执行完毕。例如:
```
myThread.join(); // 等待myThread线程执行完毕
```
3. 传递参数:可以通过在创建线程时传递参数来向线程函数传递参数。例如:
```
void myFunction(int param) {
// 使用param进行操作
}
int myParam = 42;
std::thread myThread(myFunction, myParam); // 创建一个新线程,并将myParam作为参数传递给myFunction函数
```
4. 后台执行:如果不需要等待线程执行完毕,可以调用线程对象的detach()函数,将线程设置为后台执行。例如:
```
myThread.detach(); // 将myThread线程设置为后台执行
```
5. 线程的数量:可以创建多个std::thread对象来创建多个线程,并行执行多个任务。
阅读全文