#include <stdio.h>
#include <thread>
#include <boost/bind.hpp>
#include <boost/threadpool.hpp>
using namespace boost::threadpool;
void func(void)
{
for(int i=0;i<1000;i++)
{
usleep(1);
}
}
void func1(int num)
{
for(int i=0;i<num;i++)
{
usleep(1);
}
}
int main()
{
printf("```````````````\n");
struct timeval interval_time_1; //记录抖动时间
struct timeval interval_time_2;
pool tp(1);
int t = 0;
gettimeofday(&interval_time_1, NULL);
for(int i=0;i<10;i++)
{
tp.schedule(func);
tp.schedule(boost::bind(func1,i));
}
tp.wait();
gettimeofday(&interval_time_2, NULL);
t = interval_time_2.tv_usec - interval_time_1.tv_usec + ((interval_time_2.tv_sec - interval_time_1.tv_sec)*1000000);
printf("t:%d\n",t);
tp.size_controller().resize(5);
gettimeofday(&interval_time_1, NULL);
for(int i=0;i<10;i++)
{
tp.schedule(func);
tp.schedule(boost::bind(func1,i));
}
tp.wait();
gettimeofday(&interval_time_2, NULL);
t = interval_time_2.tv_usec - interval_time_1.tv_usec + ((interval_time_2.tv_sec - interval_time_1.tv_sec)*1000000);
printf("t:%d\n",t);
printf("```````````````\n");
return 0;
}
boost线程池简单示例
最新推荐文章于 2024-07-07 13:40:17 发布