一个简单的线程池 (三)

2014-11-24 02:51:54 · 作者: · 浏览: 6
tmp->next;
ptmp->task=task;
ptmp->arg=arg;
ptmp->next=NULL;
taskwaittingnum++;
pthread_mutex_unlock(&g_nummutex);
pthread_mutex_unlock(&g_taskmutex);
return 0;
}
int destroy_pool(void)
{
isShut=1;
pthread_mutex_destroy(&g_nummutex);
pthread_mutex_destroy(&g_taskmutex);
return 0;
}


[cpp
//用来测试的main.c
#include
#include "threadpool.h"
void* task1(void* arg)
{
printf("task1正在运行!/n");
sleep(10);
printf("task1运行结束!/n");
return NULL;
}
void* task2(void* arg)
{

printf("task2正在运行!/n");
sleep(10);
printf("task2运行结束!/n");
return NULL;
}
void* task3(void* arg)
{
printf("task3正在运行!/n");
printf("task3运行结束!/n");
return NULL;
}
void* task4(void* arg)
{
printf("task4正在运行!/n");
printf("task4运行结束!/n");
return NULL;
}
int main(int argc, char *argv[])
{
init_task();
init_pool();
add_task(task1, NULL);
add_task(task2, NULL);
add_task(task3, NULL);
add_task(task4, NULL);
sleep(30);
destroy_pool();
return 0;