執行緒池的使用

2022-08-17 03:09:14 字數 2111 閱讀 7732

#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是乙個頂層介面,它只宣告了乙個方...