std::thread详细使用方法
时间: 2023-11-07 16:53:36 浏览: 84
std::thread 是 C++11 引入的多线程库,可以方便地创建和管理线程。下面是 std::thread 的详细使用方法:
1. 引入头文件
```c++
#include <thread>
```
2. 创建线程
std::thread 提供了多种创建线程的方法,最常用的是构造函数:
```c++
std::thread t(func, args...);
```
其中,func 是线程函数,args 是传递给线程函数的参数。如果线程函数不需要参数,可以省略 args。例如:
```c++
void my_function(int a, double b) {
// ...
}
std::thread t(my_function, 42, 3.14);
```
或者使用 lambda 表达式:
```c++
std::thread t([](int a, double b) {
// ...
}, 42, 3.14);
```
3. 等待线程结束
使用 std::thread::join() 方法等待线程执行完毕:
```c++
t.join();
```
4. 分离线程
使用 std::thread::detach() 方法分离线程,使得线程在后台独立运行,不再受到主线程的控制:
```c++
t.detach();
```
5. 判断线程是否可执行
使用 std::thread::joinable() 方法判断线程是否可执行:
```c++
if (t.joinable()) {
// ...
}
```
6. 获取线程标识符
使用 std::thread::get_id() 方法获取线程标识符:
```c++
std::thread::id id = t.get_id();
```
7. 线程间同步
使用互斥锁(std::mutex)、条件变量(std::condition_variable)等机制实现线程间同步。
以上就是 std::thread 的详细使用方法,希望能对你有所帮助。
阅读全文