uThreadPool.pas 线程池示例 DEMO 修正资源死锁

上传者: oupj | 上传时间: 2021-09-23 13:47:22 | 文件大小: 595KB | 文件类型: ZIP
DEMO程序必须重新编译运行才能修正原资源死锁问题 取自卢伟的专栏DELPHI 线程池代码(http://blog.csdn.net/babyvspp/archive/2008/01/01/2008234.aspx),封装的十分完美,用法也非常简单,可以根据使用者设定的初始工作线程数和最大线程数以及线程执行时间自动增加工作线程。 此发布修改了原作者在线程池Free时的一点问题:“不能结束工作中的工作者线程(资源死锁)”。 用法: // 创建线程池 FThreadPool := TThreadsPool.Create(Self); // 创建线程池 FThreadPool.ThreadsMin := 5; // 初始工作线程数 FThreadPool.ThreadsMax := 50; // 最大允许工作线程数 FThreadPool.OnProcessRequest := DealwithCommRecvData; // 线程工作函数(DealwithCommRecvData在工作者线程的Execute方法中被调用) // 使用线程池 var  AWorkItem: TRecvCommDataWorkItem; // 继承自TWorkItem begin  AWorkItem := TRecvCommDataWorkItem.Create;  Move(PData[0], AWorkItem.FRecvData[0], PDataLen);  AWorkItem.FRecvDataLen := PDataLen;  FThreadPool.AddRequest(AWorkItem); // 向线程池分配一个任务 end;

文件下载

资源详情

[{"title":"( 57 个子文件 595KB ) uThreadPool.pas 线程池示例 DEMO 修正资源死锁","children":[{"title":"线程池D7","children":[{"title":"ThreadPoolDemo.ddp <span style='color:#111;'> 51B </span>","children":null,"spread":false},{"title":"ThreadPool.res <span style='color:#111;'> 90.06KB </span>","children":null,"spread":false},{"title":"__history","children":[{"title":"ThreadPoolDemo.dfm.~60~ <span style='color:#111;'> 5.14KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~64~ <span style='color:#111;'> 5.22KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~61~ <span style='color:#111;'> 5.19KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~168~ <span style='color:#111;'> 26.64KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~164~ <span style='color:#111;'> 26.61KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~171~ <span style='color:#111;'> 26.59KB </span>","children":null,"spread":false},{"title":"uMainForm.pas.~2~ <span style='color:#111;'> 2.44KB </span>","children":null,"spread":false},{"title":"ThreadPool.dpr.~1~ <span style='color:#111;'> 274B </span>","children":null,"spread":false},{"title":"uMainForm.pas.~1~ <span style='color:#111;'> 2.17KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~203~ <span style='color:#111;'> 5.30KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~169~ <span style='color:#111;'> 26.64KB </span>","children":null,"spread":false},{"title":"uMainForm.dfm.~3~ <span style='color:#111;'> 1.34KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~163~ <span style='color:#111;'> 26.61KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~65~ <span style='color:#111;'> 5.25KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~59~ <span style='color:#111;'> 5.13KB </span>","children":null,"spread":false},{"title":"U_ThreadPools.pas.~2~ <span style='color:#111;'> 7.18KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~167~ <span style='color:#111;'> 26.61KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~63~ <span style='color:#111;'> 5.19KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~198~ <span style='color:#111;'> 5.04KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~202~ <span style='color:#111;'> 5.27KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~58~ <span style='color:#111;'> 5.37KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~66~ <span style='color:#111;'> 5.25KB </span>","children":null,"spread":false},{"title":"uMainForm.dfm.~1~ <span style='color:#111;'> 1.33KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~162~ <span style='color:#111;'> 26.61KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~201~ <span style='color:#111;'> 5.13KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~166~ <span style='color:#111;'> 26.61KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~204~ <span style='color:#111;'> 5.30KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~196~ <span style='color:#111;'> 5.05KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~165~ <span style='color:#111;'> 26.61KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~200~ <span style='color:#111;'> 5.13KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas.~170~ <span style='color:#111;'> 26.60KB </span>","children":null,"spread":false},{"title":"ThreadPool.dpr.~2~ <span style='color:#111;'> 257B </span>","children":null,"spread":false},{"title":"uMainForm.pas.~3~ <span style='color:#111;'> 2.48KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~62~ <span style='color:#111;'> 5.19KB </span>","children":null,"spread":false},{"title":"uMainForm.dfm.~2~ <span style='color:#111;'> 1.34KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~197~ <span style='color:#111;'> 5.04KB </span>","children":null,"spread":false},{"title":"U_ThreadPools.pas.~1~ <span style='color:#111;'> 7.18KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~199~ <span style='color:#111;'> 5.06KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.pas.~205~ <span style='color:#111;'> 5.32KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm.~67~ <span style='color:#111;'> 5.25KB </span>","children":null,"spread":false},{"title":"uMainForm.dfm.~4~ <span style='color:#111;'> 1.50KB </span>","children":null,"spread":false}],"spread":false},{"title":"ThreadPoolDemo.pas <span style='color:#111;'> 5.16KB </span>","children":null,"spread":false},{"title":"ThreadPool.exe <span style='color:#111;'> 501.00KB </span>","children":null,"spread":false},{"title":"ThreadPool.cfg <span style='color:#111;'> 439B </span>","children":null,"spread":false},{"title":"ThreadPool.dof <span style='color:#111;'> 16.77KB </span>","children":null,"spread":false},{"title":"ThreadPool.dproj.local <span style='color:#111;'> 2.29KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dcu <span style='color:#111;'> 9.28KB </span>","children":null,"spread":false},{"title":"uThreadPool.pas <span style='color:#111;'> 27.67KB </span>","children":null,"spread":false},{"title":"ThreadPool.identcache <span style='color:#111;'> 189B </span>","children":null,"spread":false},{"title":"uThreadPool.dcu <span style='color:#111;'> 20.98KB </span>","children":null,"spread":false},{"title":"ThreadPoolDemo.dfm <span style='color:#111;'> 4.43KB </span>","children":null,"spread":false},{"title":"ThreadPool.map <span style='color:#111;'> 327.93KB </span>","children":null,"spread":false},{"title":"ThreadPool.drc <span style='color:#111;'> 21.20KB </span>","children":null,"spread":false},{"title":"ThreadPool.dpr <span style='color:#111;'> 264B </span>","children":null,"spread":false},{"title":"ThreadPool.dproj <span style='color:#111;'> 6.27KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

  • wppt818 :
    测试可用。
    2020-04-22
  • tufeng2008 :
    有时会死 机
    2019-03-01
  • haissmy :
    好的版本,不知哪个最新的
    2017-12-09
  • t_39smart :
    只能学习,实际用不上。
    2016-03-17
  • wjf_lvzhnet :
    下载试过了,可以用的,我用的版本是d6的
    2015-11-13

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明