• 大小: 10.72 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-09
  • 语言: 其他
  • 标签: 线程池  

资源简介

这是一个很好很稳定的线程池源码,我自己项目中使用的,跑的很稳定,也很好扩展

资源截图

代码片段和文件信息

#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


评论

共有 条评论