boost.threadpool 怎么延时等待线程
时间: 2024-02-06 09:11:31 浏览: 115
boost threadpool(修复内存泄露后的版本)
在boost.threadpool中,我们可以使用`boost::this_thread::sleep_for()`函数来实现线程的延时等待。该函数接受一个时间间隔参数,单位为毫秒,表示线程需要休眠的时间。
下面是示例代码,其中使用`boost::this_thread::sleep_for()`函数实现延时等待:
```
#include <iostream>
#include <boost/threadpool.hpp>
using namespace std;
using namespace boost::threadpool;
int main()
{
// 创建一个线程池对象,参数为线程池中线程数量
threadpool pool(4);
// 添加任务
for (int i = 0; i < 10; ++i)
{
pool.add_task([]()
{
cout << "Task " << boost::this_thread::get_id() << " is running" << endl;
boost::this_thread::sleep_for(boost::chrono::milliseconds(1000)); // 延时等待1秒
cout << "Task " << boost::this_thread::get_id() << " is done" << endl;
});
}
// 等待任务完成
pool.wait();
// 释放线程池
pool.join();
return 0;
}
```
在上面的示例代码中,我们在每个任务中添加了一个延时等待的操作,使得每个任务的执行时间变长。在这里,我们设置了一个1秒的等待时间。这样,当线程执行到`boost::this_thread::sleep_for()`函数时,它会休眠1秒钟,然后再继续执行后面的代码。
阅读全文