windows自带的线程池
#define _CRT_SECURE_NO_WARNINGS
#include "iostream"
#include "windows.h"
using namespace std; void NTAPI poolThreadFunc(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context)
{
cout << GetCurrentThreadId() << endl;
} void NTAPI poolThreadWork(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context,
_Inout_ PTP_WORK Work)
{
cout << GetCurrentThreadId() << endl;
} int main()
{
//创建线程池
// PTP_POOL threadPool = CreateThreadpool(NULL);
// SetThreadpoolThreadMinimum(threadPool, 1);
// SetThreadpoolThreadMaximum(threadPool, 3);
//初始化环境
TP_CALLBACK_ENVIRON te;
InitializeThreadpoolEnvironment(&te);
// SetThreadpoolCallbackPool(&te, threadPool);
//创建线程
//TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te); //单次工作提交,以异步的方式运行函数,一次性任务
//TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te);
//TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te);
//TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te); //清理线程池的环境变量
// DestroyThreadpoolEnvironment(&te);
//关闭线程池
// CloseThreadpool(threadPool); // SuspendThread(); //更改线程状态为悬挂
// ResumeThread(); //恢复线程状态运行 /*
创建工作项
*/
PTP_WORK pwk;
pwk = CreateThreadpoolWork(poolThreadWork, NULL, &te);
//提交工作项,可以提交多次
SubmitThreadpoolWork(pwk);
SubmitThreadpoolWork(pwk);
//等待工作结束
WaitForThreadpoolWorkCallbacks(pwk, false);
//关闭工作对象
CloseThreadpoolWork(pwk); system("pause");
return ;
}
windows自带的线程池的更多相关文章
- [转] 引用 Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
PS: Spring ThreadPoolTaskExecutor vs Java Executorservice cachedthreadpool 引用 [轰隆隆] 的 Java自带的线程池Thre ...
- 深入理解Java自带的线程池和缓冲队列
前言 线程池是什么 线程池的概念是初始化线程池时在池中创建空闲的线程,一但有工作任务,可直接使用线程池中的线程进行执行工作任务,任务执行完成后又返回线程池中成为空闲线程.使用线程池可以减少线程的创建和 ...
- python自带的线程池和进程池
#python自带的线程池 from multiprocessing.pool import ThreadPool #注意ThreadPool不在threading模块下 from multiproc ...
- 使用jdk自带的线程池。加载10个线程。
在开发中使用线程,经常不经意间就new Thread()一个出来,然后发现,这样做不是很好,特别是很多线程同时处理的时候,会出现CPU被用光导致机器假死,线程运行完成自动销毁后,又复活的情况. 所以在 ...
- JDK自带的线程池详解
1.线程池的使用场景 等待返回任务的结果的多步骤的处理场景, 批量并发执行任务,总耗时是单个步骤耗时最长的那个,提供整体的执行效率, 最终一致性,异步执行任务,无需等待,快速返回 2.线程池的关键参数 ...
- windows线程池四种情形(win核心读书笔记)
windows线程池四种情形(win核心读书笔记) Mircosoft从Windows2000引入线程池API,并在Vista后对线程池重新构架,引入新的线程池API.以下所有线程池函数均适用于Vis ...
- Java线程池带图详解
线程池作为Java中一个重要的知识点,看了很多文章,在此以Java自带的线程池为例,记录分析一下.本文参考了Java并发编程:线程池的使用.Java线程池---addWorker方法解析.线程池.Th ...
- python自带的进程池及线程池
进程池 """ python自带的进程池 """ from multiprocessing import Pool from time im ...
- 《Windows核心编程系列》十一谈谈Windows线程池
Windows线程池 上一篇博文我们介绍了IO完成端口.得知IO完成端口可以非常智能的分派线程.但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做. 我们自己也可以创建 ...
随机推荐
- 聊天工具mychat
python学习,自己写了个简单聊天工具mychat 最近在学习python,自己写了个最最简单的聊天工具mychatv0.1. 第一版,完成基本的聊天功能. GUI用的是自带的TKinter,用到的 ...
- Hadoop Streaming框架学习(一)
Hadoop Streaming框架学习(一) Hadoop Streaming框架学习(一) 2013-08-19 12:32 by ATP_, 473 阅读, 3 评论, 收藏, 编辑 1.Had ...
- 抛掉kendoUI的MultiSelect,自己实现 DropDownList MultiSelect
我们首先来看下kendoUI官方的下拉框多选: 再来看看telerik RadControls的下拉框多选: 很明显从展现形式上来看,第二种是优于第一种的,至少我是这么认为的 :-) 那我们就对Dro ...
- Linux 学习 step by step (2)
Linux 学习 step by step (2) Linux,想要我说爱你真的不容易了,尽管,你是ubutun,尽管,你有蛮界面.但是,操作你,还是没有操作windows那么的如鱼得水了.为了更 ...
- android JNI--- 搭建环境(1)
搭建好我们的ndk开发环境,这部分网上资料一大堆,拿来主义~~~~ 工欲善其事必先利其器 , 下面介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建. 1.Android ...
- POJ 1033 Defragment
根据http://hi.baidu.com/algorithm/item/d51b15f7a8ea1c0a84d278be这个开始练习ac,刚开始接触这道题时以为是道搜索题,读完之后深思了一下,感觉不 ...
- [开发者账号] ios7苹果开发者账号申请
1.登陆 https://developer.apple.com/ 2.点击网站最底部的 3.点击 4.然后根据提示继续点击 注意:1.点击的过程中注意个人和企业账号 开发者类型等 2.付款账号的 ...
- EF 下的code fist 模式编程
EF 分两种模式 codefirst(就是不知道数据是啥,也没有数据库) 和 database fist (数据已经设计好了) 首先打开vs 新建一个项目 创建一个控制台程序 然后 新建一个Tea ...
- RHEL账号总结一:账号的分类
账号是一种用来记录单个用户或者多个用户的数据.RHEL中每一个合法的用户都必须拥有账号,才能使用RHEL. 在RHEL上的账号可以分为两类: 用户账号:用来存储单一用户的数据,你也可以使用一个用户账号 ...
- Google Daydream 在中国的第一次演讲摘录
从 PC.手机到 VR/AR,计算机平台正在迁移,而在这个过程中,与用户使用体验息息相关的「人机交互方式」也将不可避免的发生变化.作为这几波浪潮的弄潮儿,Google 怎么看这种人机交互方式的演进? ...