c++线程池运行四个任务代码示例
时间: 2024-09-09 20:13:07 浏览: 59
Visual C++写的线程池的例子threadmanage.rar
在 C++ 中,使用线程池可以有效地管理并发任务,减少创建和销毁线程的成本。这里是一个简单的例子,使用 `std::ThreadPool`(C++17引入)来运行四个任务:
```cpp
#include <iostream>
#include <thread_pool.hpp>
// 模拟一个耗时函数
void worker_function(int id) {
std::cout << "Task " << id << " started.\n";
// 这里你可以添加实际的业务逻辑,例如网络请求、计算等
std::this_thread::sleep_for(std::chrono::seconds(5));
std::cout << "Task " << id << " finished.\n";
}
int main() {
// 创建一个包含4个线程的工作线程池
auto pool = std::make_shared<std::ThreadPool>(4);
// 把四个任务提交到线程池
for (size_t i = 0; i < 4; ++i) {
pool->enqueue(worker_function, i); // 参数是任务函数和一个唯一标识
}
// 等待所有任务完成,但不会阻塞主线程
pool->wait();
std::cout << "All tasks completed.\n";
return 0;
}
```
在这个例子中,`worker_function` 是要执行的任务,我们通过线程池的 `enqueue` 方法将它们加入到线程队列,然后用 `wait` 方法等待所有任务结束。
阅读全文