libhv HThreadPool commit 使用
时间: 2023-10-24 16:50:42 浏览: 163
详解Docker commit的使用
在libhv中,HThreadPool是一个线程池类,用于管理和执行多个任务。你可以使用HThreadPool的commit函数来提交任务给线程池执行。下面是一个简单的示例代码:
```cpp
#include <iostream>
#include "hv/threadpool.h"
void task_func(int task_id) {
std::cout << "Task " << task_id << " is executed in thread " << std::this_thread::get_id() << std::endl;
}
int main() {
// 创建一个线程池,指定线程数量为4
hv::HThreadPool thread_pool(4);
// 提交10个任务给线程池执行
for (int i = 0; i < 10; ++i) {
thread_pool.commit([i](){
task_func(i);
});
}
// 等待所有任务完成
thread_pool.wait();
return 0;
}
```
在这个例子中,我们首先创建了一个包含4个线程的HThreadPool对象。然后使用一个循环提交了10个任务给线程池执行。每个任务都是一个lambda函数,其中调用了task_func函数来输出任务的执行信息。最后使用`thread_pool.wait()`等待所有任务完成。
注意,在使用HThreadPool时,你需要在编译时链接libhv库。另外,确保在程序结束前调用`thread_pool.wait()`等待所有任务完成,以免程序提前退出导致任务未执行完毕。
这只是一个简单的示例,你可以根据实际需求自定义任务函数和线程池参数。详细的使用方法可以参考libhv的文档或示例代码。
阅读全文