【Windows原理】线程池定制

// 04.线程池定制 - 复习.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{

	// 创建一个普通线程池
	PTP_POOL hPool = CreateThreadpool(0);

	// 配置线程池
	// 设置线程池最小线程个数
	SetThreadpoolThreadMinimum(hPool, 1);

	// 设置线程池最大同时运行的线程个数
	SetThreadpoolThreadMaximum(hPool,10);

	// 初始化线程池环境
	TP_CALLBACK_ENVIRON tce = { 0 };
	InitializeThreadpoolEnvironment(&tce);

	// 将线程环境和线程池关联
	SetThreadpoolCallbackPool(&tce, hPool);

	/*
	 * 提交工作项就可以不传递默认的线程环境NULL
	 * 传递&tce,而tce是和我们创建的线程池hPool绑定的
	 * 这样提交的工作项等,就交给线程池hPool去处理了
	 **/

	// 清理线程池环境
	DestroyThreadpoolEnvironment(&tce);
	// 线程池使用完毕后,关闭线程池
	CloseThreadpool(hPool);
	return 0;
}

 

文 / luna
LEAVE A REPLY

loading