c++11 std::thread
时间: 2024-11-06 16:12:22 浏览: 31
C++11中std::packaged_task的使用详解
C++11引入了`std::thread`库,这是一个用于处理线程的标准库。它提供了一种方便的方式来创建、管理和同步线程,使得并发编程变得更加简单。`std::thread`类允许你在代码中创建一个新的线程,并将一个函数或者方法作为目标线程的任务(也称为线程执行体)。使用`std::thread`的主要步骤包括:
1. 创建线程:通过`std::thread`构造函数指定一个函数指针以及需要传递给该函数的参数。例如:
```cpp
void my_function(int param) {
// 线程执行的具体代码
}
std::thread thread_instance(my_function, 42);
```
2. 启动线程:创建线程后,需要调用它的`start()`方法启动线程。这个操作是异步的,意味着主线程会继续执行而不会等待新线程完成。
3. 等待线程结束:如果你想让主线程等待新线程执行完毕,可以使用`join()`方法。如果不想阻塞,也可以使用`detach()`方法使线程独立运行。
4. 错误检查:在使用`std::thread`时,要注意检查异常,因为线程的生命周期可能会遇到各种错误。
阅读全文