Windows线程池使用方法
前言
在Windows系统下使用线程池非常方便,在不考虑定制线程池的情况下,几行代码就可以编写一个简易且高效的线程池,本文分别列举了两种Windows系统下线程池的使用方法,以满足不同的需求:1、简单使用线程池;2、定制线程池;3、封装线程池类;
正文
1、简单使用线程池:
简单使用线程池确实很容易,几行代码加个注释应该就能明白了;
#include <stdio.h>
#include <windows.h>
#include <threadpoolapiset.h>struct TaskParam
{//数据int data;//工作项PTP_WORK pWorkItem;
};//线程池测试//线程池回调函数
VOID NTAPI TaskHandler(_Inout_ PTP_CALLBACK_INSTANCE Instance,_Inout_opt_ PVOID Context,_Inout_ PTP_WORK Work
)
{TaskParam *pParam = (TaskParam*)Context;if (pParam){printf("ThreadID:%0x,data=%d\n", GetCurrentThreadId(), pParam->data);//如果任务没有完成,会异步释放,如果任务完成则会立即释放CloseThreadpoolWork(pParam->pWorkItem);delete pParam;}Sleep(2000);
}int main()
{ for (int i = 0; i &l
Windows线程池使用方法相关推荐
- 《Windows via C/C++》学习笔记 —— Windows 线程池
线程池(thread pool),允许有多个线程同时存在,并发执行,并且这些线程受到统一管理. 在Windows Vista中,提供了全新的线程池机制,一般这些线程池中的线程的创建的销毁是由操作系统自 ...
- 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
文章目录 体系结构 冯诺依曼 存储结构 cache常见的组织结构 cache命中 缓存一致性 硬中断.软中断 操作系统结构 内核 Linux宏内核 内存管理 虚拟内存 内存管理 - 分段 - 分页 - ...
- 【Android 异步操作】线程池 ( 线程池 execute 方法源码解析 )
文章目录 一.线程池 execute 方法源码解析 二.线程池 execute 方法完整源码及注释 一.线程池 execute 方法源码解析 进入 ThreadPoolExecutor 中 , 查看线 ...
- 【Android 异步操作】线程池 ( 线程池简介 | 线程池初始化方法 | 线程池种类 | AsyncTask 使用线程池示例 )
文章目录 一.线程池简介 二.线程池初始化方法简介 三.线程池使用示例 一.线程池简介 线程池一般是实现了 ExecutorService 接口的类 , 一般使用 ThreadPoolExecutor ...
- Java和Spring中线程池创建方法
一.线程池定义 1.JDK中线程池类图 Executor:父接口,所有线程池都实现了这个接口,里面有一个excute()方法用于执行线程 ExecutorService:线程池接口,继承自Execut ...
- Android中网络请求创建单个线程池的方法
创建单个线程池的方法 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; impor ...
- 线程池invokeAll方法详解
线程池invokeAll方法详解 问题起源与抽象 问题排查与猜测 猜测一:invokeAll 在异步执行后会不会同步等待线程执行完毕获取最终结果 猜测二:队列里面可能存在第一次调用 invokeAll ...
- 线程池三大方法,七大参数,四种拒绝策略
线程和进程: 进程: 一个程序,是执行程序的一次执行过程. 一个进程往往包含若干个线程,线程是cpu调度和执行的单位. Java默认有2个线程:main.GC 池化技术: 01:程序的运行,本质 :占 ...
- java线程池之一:创建线程池的方法
在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式, 1.使用ThreadPoo ...
最新文章
- 黑色星期五Friday the Thirteenth
- c语言大作业之镖行天下,天下识君--如何最快速度刷完天下识君
- 多案分库分表带来的问题-跨库关联查询
- ext get id js_【翻译】Ext JS最新技巧——2015-8-11
- Lambda 表达式详解~Streams API~Stream常见接口方法
- mac+免密登陆+linux,mac ssh免密登录Linux
- 二十六岁,博士考入团中央选调生,前途如何?
- jquery实现app开发闹钟功能_一款让你真正摆脱懒觉的“闹钟APP软件”
- qq音乐android升级版,QQ音乐Android 4.8更新 温暖私享正版无损好音乐
- 软件工程毕设项目 - 基于SSM的毕业设计管理系统(含源码+论文)
- linux之hugepage
- MFS分布式文件系统
- 华为路由器DNS服务器未响应,路由器dns辅服务器未响应
- Linux查看服务器SN序列码
- php对接微信提醒,PHP对接微信公众平台消息接口开发流程教程
- 火狐中无法打开google的搜索结果的解决方式
- uipath锚点的使用
- 关于个人在遇到Synaptics后的处理方法
- ChemOffice Suite 2018 18.1.2.18
- cocos2dx中的颜色混合