/************************************
文件名称:pthread_pool.h
文件功能:线程池的变量定义和函数声明
作 者:王治博
创建日期:2016-12-23
修改日期:无
修改原因:无
********************************************/
#ifndef _THREAD_H_
#define _THREAD_H_
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pthread.h>
typedef struct task
{
void *(*process) (void* arg); /*线程的任务函数*/
void * arg; /* 传入任务函数的参数 */
struct task *next; /*任务链表的指针域*/
} Cthread_task;
/*线程池结构*/
typedef struct
{
pthread_mutex_t queue_lock; /*线程互斥锁(防止同时访问共享资源) */
pthread_cond_t queue_ready; /*线程条件变量(线程同步机制)*/
Cthread_task *queue_head; /*链表结构,线程池中所有等待任务*/
int shutdown; /*是否销毁线程池*/
pthread_t *threadid;
int max_thread_num; /*线程池中线程数目*/
int cur_task_size; /*当前等待的任务数*/
} Cthread_pool;
static Cthread_pool *pool = NULL;
/*任务处理函数*/
void *thread_routine (void *arg);
void * rut_process(int arg);
/*线程池的创建和初始化*/
void pool_init (int max_thread_num);
/*往线程池中添加任务*/
int pool_add_task (void *(*process) (int arg), int arg);
int pool_destroy();
#endif
/****
文件名称:pthread_pool.h
文件功能:线程池的变量定义和函数声明
作 者:王治博
创建日期:2016-12-23
修改日期:无
修改原因:无
********************************************/
#ifndef _THREAD_H_
#define _THREAD_H_
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pthread.h>
typedef struct task
{
void *(*process) (void* arg); /*线程的任务函数*/
void * arg; /* 传入任务函数的参数 */
struct task *next; /*任务链表的指针域*/
} Cthread_task;
/*线程池结构*/
typedef struct
{
pthread_mutex_t queue_lock; /*线程互斥锁(防止同时访问共享资源) */
pthread_cond_t queue_ready; /*线程条件变量(线程同步机制)*/
Cthread_task *queue_head; /*链表结构,线程池中所有等待任务*/
int shutdown; /*是否销毁线程池*/
pthread_t *threadid;
int max_thread_num; /*线程池中线程数目*/
int cur_task_size; /*当前等待的任务数*/
} Cthread_pool;
static Cthread_pool *pool = NULL;
/*任务处理函数*/
void *thread_routine (void *arg);
void * rut_process(int arg);
/*线程池的创建和初始化*/
void pool_init (int max_thread_num);
/*往线程池中添加任务*/
int pool_add_task (void *(*process) (int arg), int arg);
int pool_destroy();
#endif
/****