std::vector<std::thread>
时间: 2023-07-14 09:10:35 浏览: 77
`std::vector<std::thread>` 是C++中的容器类模板,用于存储多个线程对象。它提供了一种方便的方式来管理和操作多个线程。
`std::vector<std::thread>` 类型的对象可以用来存储 `std::thread` 类型的线程对象。可以使用 `push_back()` 方法向容器中添加线程对象,使用 `size()` 方法获取容器中线程对象的数量,使用 `operator[]` 或 `at()` 方法访问特定位置的线程对象。
以下是一个示例代码,展示如何使用 `std::vector<std::thread>`:
```cpp
#include <iostream>
#include <thread>
#include <vector>
void thread_function(int thread_id) {
std::cout << "Thread " << thread_id << " is running." << std::endl;
}
int main() {
std::vector<std::thread> threads;
// 创建线程并添加到容器中
for (int i = 0; i < 3; i++) {
threads.push_back(std::thread(thread_function, i));
}
// 等待线程完成
for (auto& thread : threads) {
thread.join();
}
return 0;
}
```
在上述示例中,我们首先创建了一个 `std::vector<std::thread>` 类型的变量 `threads`。然后,使用 `push_back()` 方法向容器中添加了三个线程对象,每个线程对象都调用了 `thread_function` 函数,并传递了不同的线程 ID。最后,使用 `join()` 方法等待所有线程完成。
需要注意的是,`std::vector<std::thread>` 类型的对象会自动管理线程对象的生命周期。当容器对象被销毁时,所有线程对象也会被销毁。同时,需要确保在添加线程对象之前线程函数已经定义。