#include "stdafx.h"
#include
#include
#include
using namespace std;
int i;
void callback fun(ptp_callback_instance instancd,pvoid context,ptp_work work)
setthreadpoolthreadmaximum(pool,100);
setthreadpoolthreadminimum(pool,1);
initializethreadpoolenvironment(&cbe);
setthreadpoolcallbackpool(&cbe,pool);
pw=createthreadpoolwork(fun,null,&cbe);//建立工作項
for(int i=0;i<10000;i++)
waitforthreadpoolworkcallbacks(pw, false);//等待工作結束
closethreadpoolwork(pw);
system("pause");
return 0;
}下面是一些函式的用法和步驟,摘自:
ptp_pool pthreadpool = createthreadpool(null); // 建立執行緒池
// 設定執行緒池執行緒數量上下限
setthreadpoolthreadminimum(pthreadpool, 2);
setthreadpoolthreadmaximum(pthreadpool, 10);
// 初始化「**函式環境」結構
tp_callback_environ tcbe;
initializethreadpoolenvironment(&tcbe);
// 將該**函式環境結構與執行緒池相關聯
setthreadpoolcallbackpool(&tcbe, pthreadpool);
// 建立清理組
ptp_cleanup_group ptpcg= createthreadpoolcleanupgroup();
// 將**函式環境結構與清理組關聯起來
setthreadpoolcallbackcleanupgroup(&tcbe, ptpcg, null);
// 現在可以建立一些項,提交給執行緒池
ptp_work ptpwork = createthreadpoolwork(, &tcbe);// 建立乙個工作項
submitthreadpoolwork(ptpwork); // 提交工作項
ptp_timer ptptimer = createthreadpooltimer(, &tcbe);// 建立乙個定時器項
setthreadpooltimer(ptptimer, ); // 提交定時器
ptp_wait ptpwait = createthreadpoolwait(, &tcbe);// 建立乙個等待項
setthreadpoolwait(ptpwait, ); // 提交等待項
ptp_io ptpio = createthreadpoolio(, &tcbe); // 建立乙個io項
startthreadpoolio(ptpio); // 開始執行io項
// 等待所有項完成
closethreadpoolcleanupgroupmembers(ptpcg, false, null);
// 關閉各個項
closethreadpoolwork(ptpwork);
closethreadpooltimer(ptptimer);
closethreadpoolwait(ptpwait);
closethreadpoolio(ptpio);
closethreadpoolcleanupgroup(ptpcg); // 關閉執行緒池清理組
destroythreadpoolenvironment(&tcbe); // 刪除**函式環境結構
closethreadpool(pthreadpool); // 關閉執行緒池
執行緒池的使用
簡而言之 兩個類 執行緒池的 類 public class threadpoolproxyfactory return mnormalthreadpoolproxy return public static threadpoolproxy createdownloadthreadpoolproxy ...
執行緒池的使用
執行緒池能幫助我們有效的管理執行緒,避免重複的建立銷毀執行緒。newfixedthreadpool 固定執行緒數量的執行緒池 newsinglethreadexecutor 返回乙個只有乙個執行緒的執行緒池 newcachedthreadpool 返回乙個可根據實際情況調整執行緒數量的執行緒池 ne...
執行緒池的使用
如果在使用執行緒的時候就去建立乙個新執行緒,當併發的執行緒數量很多,並且每個執行緒都是執行乙個時間很短的任務就結束了,系統在建立和銷毀執行緒上花費的時間和消耗的系統資源都相當大,甚至要比處理任務的時間和資源要多的多,同時活動的執行緒也需要消耗系統資源.executor是乙個頂層介面,它只宣告了乙個方...