/*
* pthread_pool.c
* * created on: 2016-3-8
* author: xfhu
*/#include
#include
#include
#include
#include
#include
#include "pthread_pool.h"
//share resource
cthread_pool pool ;//執行緒池物件,全域性共享
extern
"c"void* thread_routine (cthread_pool* pool);
cthread_pool::cthread_pool()
}cthread_pool::cthread_pool(int max_thread)
}//銷毀執行緒池
cthread_pool::~cthread_pool()
//釋放執行緒id占用記憶體
free (threadid);
//清理執行緒池中沒有完成的任務
thread_worker *head = null;
while (queue_head != null)
//釋放互斥量和條件變數
pthread_mutex_destroy(&(queue_lock));
pthread_cond_destroy(&(queue_ready));
//釋放執行緒池物件占用記憶體。
return ;
}//向執行緒池新增任務
int cthread_pool::pool_add_worker (void *(*process)(void *arg), void *arg)
member->next = newworker;
} else
cur_queue_size++;
pthread_mutex_unlock (&(queue_lock));
//使條件變數變成真,喚醒阻塞在條件變數上的執行緒
pthread_cond_signal (&(queue_ready));
return0;}
thread_worker * cthread_pool::thread_get_task()
if (shutdown)
//printf ("thread 0x%x is starting to work\n", pthread_self ());
cur_queue_size--;
worker = queue_head;
queue_head = worker->next;
pthread_mutex_unlock (&(queue_lock));
return worker;
}void* thread_routine (cthread_pool* pool) else
}pthread_exit (null);
}void *myprocess (void *arg)
int main (int argc, char **argv)
sleep (5);
delete pool;
free (workingnum);
return
0;}
執行緒池的乙個例子
執行緒池的乙個例子 threadpool.h threadpool.h inte ce for the cthreadpool class.if defined afx threadpool h e4160016 0fd0 4e25 a708 a3240945c9b9 included define...
python 執行緒池 Python的執行緒池
usr bin env python coding utf 8 concurrent 用於執行緒池和程序池程式設計而且更加容易,在python3.2中才有。import sys from concurrent.futures import threadpoolexecutor,as complete...
執行緒 執行緒池
執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...