c++ std::thread 类
时间: 2024-12-18 08:12:16 浏览: 12
C++ 标准库中的 `std::thread` 类是用于处理线程的工具。它是 `<thread>` 头文件的一部分,允许程序员创建、启动、管理和同步线程。以下是一些关键点:
1. **创建线程**:你可以通过构造函数创建一个新的线程,并传递一个函数指针作为线程的目标,或者是一个lambda表达式。
```cpp
std::thread thread_function(target_function, arg1, arg2);
```
2. **启动线程**:一旦线程被创建,你可以调用 `start()` 函数开始它的执行。
```cpp
thread_function.start();
```
3. **暂停和继续**:如果你想暂时停止线程,可以调用 `join()` 函数等待线程结束;如果你想恢复其执行,线程可能不具备这样的功能,通常需要外部信号或者使用互斥量等同步机制。
4. **异常处理**:线程内部抛出的异常不会影响主线程,你需要使用 `catch(thread::hardware_breakpoint)` 或者捕获异常的方式处理线程内的错误。
5. **共享数据**:使用 `std::mutex`、`std::condition_variable` 或其他同步原语,可以在多个线程间安全地共享数据。
```cpp
std::mutex mutex;
void* shared_data;
// 线程A
{
std::lock_guard<std::mutex> lock(mutex);
// 修改 shared_data
}
// 线程B
{
std::unique_lock<std::mutex> lock(mutex);
// 读取 shared_data
}
```
阅读全文