macchina.io中线程池的使用方法,举个例子
时间: 2024-03-09 07:50:55 浏览: 171
在macchina.io中,线程池可以通过使用Poco库中的ThreadPool类来实现。下面是一个简单的例子,展示如何在macchina.io中使用线程池:
```c++
#include "Poco/ThreadPool.h"
#include <iostream>
int main()
{
Poco::ThreadPool threadPool(4); // 创建一个拥有4个线程的线程池
// 向线程池中添加任务
for(int i = 0; i < 10; i++) {
threadPool.start(new Poco::RunnableTask([](){
std::cout << "Hello from thread " << Poco::Thread::current()->name() << std::endl;
}));
}
// 等待所有任务完成
threadPool.joinAll();
std::cout << "All tasks completed!" << std::endl;
return 0;
}
```
在这个例子中,我们创建了一个拥有4个线程的线程池,并向线程池中添加10个任务。每个任务都是一个无参数的Lambda函数,它输出当前线程的名称。最后,我们调用`joinAll()`方法来等待所有任务完成,并输出一条消息表示所有任务都已完成。
在实际使用中,我们可以根据需要创建不同大小的线程池,并向其中添加各种类型的任务。注意,在使用线程池时需要确保任务是线程安全的,以避免潜在的竞态条件和数据损坏问题。
阅读全文