C++thread使用
时间: 2024-10-11 12:17:43 浏览: 21
详解C++ thread用法总结
C++中的`<thread>`库是用于处理线程的,它提供了一种方便的方式来创建、管理和同步线程。以下是`thread`类的一些关键点:
1. 创建线程:你可以通过构造函数`std::thread(target, args)`来创建一个新的线程,其中`target`是一个函数指针或者 Lambda 表达式,`args`是传递给该函数的参数列表。
```cpp
#include <thread>
void print_hello() {
std::cout << "Hello from thread" << std::endl;
}
int main() {
std::thread t(print_hello); // 使用函数指针
// 或者
t = std::thread([]() { std::cout << "Lambda version" << std::endl; }); // 使用 Lambda
t.join(); // 等待线程结束
return 0;
}
```
2. 启动线程:如果不调用`join()`,新创建的线程不会立即开始执行,你需要通过调用`start()`来启动它。
3. 线程同步:C++ `thread`类也支持一些同步机制,如条件变量(`std::condition_variable`)、互斥锁(`std::mutex`)和读写锁(`std::shared_mutex`),帮助你在多线程环境中协调访问共享资源。
4. 线程终止:你可以使用`detach()`来让线程独立运行,这时主线程不会等待其结束;如果你想控制线程的生命周期,可以使用`join()`或抛出异常来中断线程。
阅读全文