C++创建调用同一个死循环函数的线程池
时间: 2024-10-13 11:11:16 浏览: 22
C++调用C函数实例详解
在C++中,创建一个调用同一个死循环函数的线程池通常涉及到以下几个步骤:
1. **包括必要的库**:
首先,你需要包含`<thread>`库来处理线程,以及可能需要的`<vector>`或`<queue>`来存储线程队列。
```cpp
#include <iostream>
#include <vector>
#include <thread>
```
2. **定义死循环函数**:
此函数将在新线程中运行,比如一个无限循环打印数字的简单例子。
```cpp
void loop_function() {
while (true) {
std::cout << "Thread running" << std::endl;
// 您可以在这里添加其他任务
}
}
```
3. **创建线程池**:
使用`std::vector<std::thread>`存储线程实例,并创建一个将死循环函数放入线程的方法。
```cpp
class ThreadPool {
public:
void start(size_t num_threads) {
threads.resize(num_threads);
for (size_t i = 0; i < num_threads; ++i) {
threads[i] = std::thread(loop_function);
}
}
private:
std::vector<std::thread> threads;
};
```
4. **启动线程池**:
创建线程池对象并指定所需的线程数。
```cpp
int main() {
ThreadPool pool;
pool.start(4); // 根据需求调整线程数
// 等待所有线程结束,可以使用join_all等方法
for (auto& thread : pool.threads) {
if (thread.joinable()) {
thread.join();
}
}
return 0;
}
```
阅读全文