线程池就好像一个池子,可以容纳各种液体

线程池就好像一个池子,可以容纳各种液体。  
  在《windows核心编程》中提及了win2000的新的线程池概念,以及一个新函数,很好用,但vc6.0不支持该函数(MSDN上有),可以直接调用库里的函数,看了该函数,应该对线程池有很好的了解。我曾作了个测试:  
  typedef   VOID   (WINAPI   *WAITORTIMERCALLBACK)(PVOID,BOOLEAN);  
   
  typedef   BOOL   (FAR   PASCAL   *   FUNC2)(    
      PHANDLE   phNewWaitObject,               //   wait   handle  
      HANDLE   hObject,                                 //   handle   to   object  
      WAITORTIMERCALLBACK   Callback,     //   timer   callback   function  
      PVOID   Context,                                     //   callback   function   parameter  
      ULONG   dwMilliseconds,                     //   time-out   interval  
      ULONG   dwFlags                                     //   options  
  );    
   
  VOID   CALLBACK   ExeClient(PVOID   pvContext,BOOLEAN   fTimerOrWaitFired)  
  {  
  if(fTimerOrWaitFired)  
  AfxMessageBox("超时了");  
  else  
  AfxMessageBox("触发事件到达!");  
  }  
   
  HANDLE     hWaitHandle;  
  void   CDrapFileDlg::OnButton2()    
  {  
  //   TODO:   Add   your   control   notification   handler   code   here  
  HANDLE   phNewWaitObject;  
  FUNC2   RegisterWaitForSingleObject;  
  HMODULE   hModule   =   GetModuleHandle("Kernel32.dll");  
  RegisterWaitForSingleObject   =   (FUNC2)   GetProcAddress   (hModule,   _T(   "RegisterWaitForSingleObject"   )   );  
  RegisterWaitForSingleObject(&phNewWaitObject,hWaitHandle,  
  ExeClient,NULL,4000,WT_EXECUTEDEFAULT);  
  }  
   
  void   CDrapFileDlg::OnButton3()   //取消  
  {  
  //   TODO:   Add   your   control   notification   handler   code   here  
  PulseEvent(hWaitHandle);  
   
  }

时间: 2024-10-28 23:19:48

线程池就好像一个池子,可以容纳各种液体的相关文章

java线程池当其中一个线程算出结果,终止全部线程

问题描述 java线程池当其中一个线程算出结果,终止全部线程 业务逻辑: 一个大型社区,每一秒有上千人在提交留言,提交的留言将经过,上万条的正则表达式的过滤,没有匹配任何规则的,才保存到系统,否则提示用户,您录入的内容不合法. 我是这样想的,把这上万条正则表达式,拆分成2000条一组,开一个5个线程的线程池,每个线程将负责其中2000个规则的匹配. 每条留言提交时,将由这5个线程,去判断是否有匹配的规则,如果其中一个线程匹配到了规则,将结束其他4个线程的任务,返回给用户结果. 请问这种要怎么实现

Android 四种线程池

为什么要使用线程池 当同时并发多个网络线程时,引入线程池技术会极大地提高APP的性能. 显著减少了创建线程的数目. 防止内存过度消耗.控制活动线程的数量,防止并发线程过多. 使用条件:假设在一台APP完成一项任务的时间为T T1 创建线程的时间 T2 在线程中执行任务的时间,包括线程间同步所需时间 T3 线程销毁的时间 显然T = T1+T2+T3.注意这是一个极度简化的假设.可以看出T1,T3是多线程本身的带来的开销,我们渴望减少T1,T3所用的时间,从而减少T的时间.但一些线程的使用者并没有

Python并发编程之线程池/进程池

引言 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我们就要编写自己的线程池/进程池,以空间换时间.但从Python3.2开始,标准库为我们提供了concurrent.futures模块,它提供了ThreadPoolExecutor和ProcessPoolExecutor两个类,实现了对threading和multiprocessing的进一步抽象,对

Thread建立的后台线程是利用线程池来实现的吗?

问题描述 1.异步委托是使用线程池来使用的.2.线程池里的都是后台线程.3.Thread可以建立前台线程和后台线程.问题:是否和异步委托一样,Thread建立的后台线程是利用线程池来实现的吗?如何验证结论? 解决方案 解决方案二:后台线程和线程池没有关系解决方案三:首先,创建和销毁线程是一个要耗费大量时间的过程,另外,太多的线程也会浪费内存资源,所以通过Thread类来创建过多的线程反而有损于性能,为了改善这样的问题,.net中就引入了线程池.线程池形象的表示就是存放应用程序中使用的线程的一个集

java 多线程和线程池

● 多线程 多线程的概念很好理解就是多条线程同时存在,但要用好多线程确不容易,涉及到多线程间通信,多线程共用一个资源等诸多问题. 使用多线程的优缺点: 优点: 1)适当的提高程序的执行效率(多个线程同时执行). 2)适当的提高了资源利用率(CPU.内存等). 缺点: 1)占用一定的内存空间. 2)线程越多CPU的调度开销越大. 3)程序的复杂度会上升. 对于多线程的示例代码感兴趣的可以自己写Demo啦,去运行体会,下面我主要列出一些多线程的技术点. synchronized 同步块大家都比较熟悉

线程池的原理与实现详解_C 语言

一. 线程池的简介通常我们使用多线程的方式是,需要时创建一个新的线程,在这个线程里执行特定的任务,然后在任务完成后退出.这在一般的应用里已经能够满足我们应用的需求,毕竟我们并不是什么时候都需要创建大量的线程,并在它们执行一个简单的任务后销毁. 但是在一些web.email.database等应用里,比如彩铃,我们的应用在任何时候都要准备应对数目巨大的连接请求,同时,这些请求所要完成的任务却又可能非常的简单,即只占用很少的处理时间.这时,我们的应用有可能处于不停的创建线程并销毁线程的状态.虽说比起

浅谈Android 的线程和线程池的使用

Android 的线程和线程池 从用途上分,线程分为主线程和子线程:主线程主要处理和界面相关的事情,子线程则往往用于耗时操作. 主线程和子线程 主线程是指进程所拥有的线程.Android 中主线程交 UI 线程,主要作用是运行四大组件以及处理它们和用户的交互:子线程的作业则是执行耗时任务. Android 中的线程形态 1.AsyncTask AsyncTask 是一种轻量级的异步任务类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新 UI, AsyncTas

java concurrent包自带线程池和队列详细讲解

Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用.为我们在开发中处理线程的问题提供了非常大的帮助.二:线程池线程池的作用:线程池作用就是限制系统中执行线程的数量.     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果:少了浪费了系统资

Java线程池 ExecutorService

本篇主要涉及到的是java.util.concurrent包中的ExecutorService.ExecutorService就是Java中对线程池的实现. 一.ExecutorService介绍 ExecutorService是Java中对线程池定义的一个接口,它java.util.concurrent包中,在这个接口中定义了和后台任务执行相关的方法: Java API对ExecutorService接口的实现有两个,所以这两个即是Java线程池具体实现类(详细了解这两个实现类,点击这里):