C++11 标准库中的 std::thread使用方法
时间: 2023-10-21 08:18:20 浏览: 112
C++11 并发指南之std::thread 详解
`std::thread`是C++11标准库中提供的线程类,可以用来创建和控制线程。使用方法如下:
1. 头文件包含
```c++
#include <thread>
```
2. 创建线程
```c++
void func(int x) {
// 线程执行的代码
}
int main() {
std::thread t(func, 123); // 创建线程,并将func函数和参数123绑定到线程t上
t.join(); // 等待线程t执行完毕
return 0;
}
```
3. 获取线程ID
```c++
std::thread::id tid = t.get_id(); // 获取线程t的ID
```
4. 判断线程是否可执行
```c++
bool b = t.joinable(); // 判断线程t是否可执行
```
5. 分离线程
```c++
t.detach(); // 将线程t分离出来,使其在后台运行
```
6. 等待线程执行完毕
```c++
t.join(); // 等待线程t执行完毕
```
7. 线程休眠
```c++
#include <chrono>
std::this_thread::sleep_for(std::chrono::milliseconds(1000)); // 休眠1秒钟
```
注意:在使用`std::thread`时,需要注意线程的生命周期,避免出现线程使用完毕后没有被销毁的情况。同时,需要注意线程之间的同步和互斥,避免出现数据竞争等问题。
阅读全文