请详细描述boost.threadpool 基本用法,并给出具体代码示例
时间: 2024-03-05 08:49:07 浏览: 44
boost.threadpool是一个基于boost库的线程池实现,可以实现方便的线程池管理。下面是boost.threadpool的基本用法和代码示例:
1. 安装boost库并包含头文件:
```cpp
#include <boost/threadpool.hpp>
```
2. 创建线程池:
```cpp
boost::threadpool::pool pool(4); // 创建一个包含4个线程的线程池
```
3. 添加任务:
```cpp
boost::threadpool::schedule(pool, []() {
// 执行任务
});
```
4. 等待任务完成:
```cpp
pool.wait(); // 等待所有任务完成
```
完整代码示例:
```cpp
#include <iostream>
#include <boost/threadpool.hpp>
int main() {
boost::threadpool::pool pool(4); // 创建一个包含4个线程的线程池
// 添加任务
for (int i = 0; i < 10; i++) {
boost::threadpool::schedule(pool, [i]() {
std::cout << "Task " << i << " is running on thread " << boost::this_thread::get_id() << std::endl;
});
}
pool.wait(); // 等待所有任务完成
return 0;
}
```