资源简介
这是一个很好很稳定的线程池源码,我自己项目中使用的,跑的很稳定,也很好扩展
代码片段和文件信息
#include
#include
#include “threadpoolmanager.h“
#include
#include
#include
#include
using namespace std;
int seq = 0;
int billNum =0;
int inter = 1;
pthread_mutex_t m_mutex;
void myFunc(void*arg)
{
pthread_mutex_lock(&m_mutex);
seq++;
if(seq%inter == 0 )
{
cout << “fun 1=“ << seq << endl;
}
if(seq>=1000000000)
{
cout << “billion“ << endl;
seq = 0;
billNum++;
}
pthread_mutex_unlock(&m_mutex);
//sleep();
}
int main(int argc char** argv)
{
if(argc != 6)
{
cout << “必须有5个参数 任务执行次数 任务池大小 线程池大小 预创建线程数 输出间隔“ << endl;
cout << “eg: ./test 999999 10000 100 10 20“ << endl;
cout << “上例代表创建一个间隔20个任务输出,任务池大小为10000,线程池大小为100,预创建10个线程,执行任务次数为:999999“ << endl;
return 0;
}
double loopSize = atof(argv[1]);
int taskSize = atoi(argv[2]);
int threadPoolSize = atoi(argv[3]);
int preSize = atoi(argv[4]);
inter = atoi(argv[5]);
pthread_mutex_init(&m_mutexNULL);
ThreadPoolManager manager;
if(0>manager.Init(taskSize threadPoolSize preSize))
{
cout << “初始化失败“ << endl;
return 0;
}
cout << “*******************初始化完成*********************“ << endl;
struct timeval time_beg time_end;
memset(&time_beg 0 sizeof(struct timeval));
memset(&time_end 0 sizeof(struct timeval));
gettimeofday(&time_beg NULL);
double i=0;
for(; i {
while(0>manager.Run(myFuncNULL))
{
usleep(100);
}
}
gettimeofday(&time_end NULL);
long total = (time_end.tv_sec - time_beg.tv_sec)*1000000 + (time_end.tv_usec - time_beg.tv_usec);
cout << “total time =“ << total << endl;
cout << “total num =“ << i << “ billion num=“ << billNum<< endl;
cout << __FILE__ << “将关闭所有线程“ << endl;
//pthread_mutex_destroy(&m_mutex);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 438 2014-02-07 11:11 thread pool\commondef.h
文件 2139 2014-02-07 11:12 thread pool\main.cpp
文件 4652 2014-02-07 11:11 thread pool\taskpool.cpp
文件 2556 2014-02-07 11:11 thread pool\taskpool.h
文件 8296 2014-02-07 11:11 thread pool\threadpool.cpp
文件 3030 2014-02-07 11:11 thread pool\threadpool.h
文件 4091 2014-02-07 11:12 thread pool\threadpoolmanager.cpp
文件 3506 2014-02-07 11:12 thread pool\threadpoolmanager.h
目录 0 2014-02-07 11:14 thread pool
----------- --------- ---------- ----- ----
28708 9
相关资源
- 一个通用的线程池实现代码(Windows
- spring 线程池
- 线程池实现蚁群算法的简单并行
- qt 线程池实现多线程
- linux 线程池封装类
- 一个linux下C实现的线程池源码
- BlockingQueue队列自定义超时时间取消线
- Linux下基于epoll_线程池高并发服务器实
- springMVC+多线程+kafka的 demo基于maven
- Windows下比较完美线程池的升级版本
- Linux + C + Epoll实现高并发服务器(线程
- qt 线程池服务器
- POS小票打印机端口打印DELPHI线程池实
- 基于Linux环境下利用线程池实现大批量
- 电子科技大学linux环境编程作业——李
- cnpack线程池调用步骤
- 深入理解Java线程池PPT:原理+代码
评论
共有 条评论