|
盒子资源分类 |
|
|
|
|
多线程控制、线程池模型、HTTP线程 |
|
关键字:ThreadPro 线程池 多线程 线程调度 |
来 自:原创 |
平 台:Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:高级 |
完成时间:2006/7/1 |
发布者:99koo |
发布时间:2006/7/1 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:网络 |
下载浏览:13675/35275 |
|
|
|
|
说到多线程,一直是编程中的一个难题,关键问题就是很难调试。每个线程的执行时间是由CPU随机分配的,你无法预料一个确定的结果。想象一下有数万个相同的任务需要执行,这里我们打个比方,比如你有一个代理列表文本文件 一行一个代理,格式IP:PORT,有1万行,你也许接触过一些代理验证软件,在软件里你可以很方便的设置并行线程数,然后点开始,就会以非常高的效率,以多线程的方式对你所导入的代理进行测试,直到最后一个代理验证完毕(每一时刻,有固定数量的线程在运行),我所说的就是这种模型。
这个模型是SPIDER程序的基础,网络蜘蛛(数据挖掘)程序就是一种基于深度的并行线程池,许多专业的营销类软件也是使用这种线程池模型来进行群发。
本人基于DELPHI的TThread封装了更实用,更结构化的TThreadTask线程类。并且写了一个线程池类TThreadPool 它是 TThreadTask 的容器,其中运用了面向对象的方法,使用了继承和多态,实现了一个可设置并发任务数的线程池。继承这些基类你可以编写任意自定义的基于这种模型的应用,让你的程序具有强大而安全的多线程处理能力!本人还额外封装了一个 THTTPtask 类,该类是基于INDY进一步封装而成,并使用了一个第3方的压缩处理库,使 THTTPtask 如同浏览器那样,完全支持 GZIP,使你编写 HTTP 多线程程序变的非常容易!
本DEMO是一个简单的代理验证程序,其中 ThreadTask.pas, ThreadPool.Pas, HTTPtask.pas 分别封装了上面所说的3个类。使用方法:
1> 新建一个单元从THTTPtask继承编写你自己的HTTP线程类,如DEMO中的 MyThreadTask.pas 2> 新建一个单元从TThreadPool继承编写你自己的线程池类,如DEMO中的 MyThreadPool.pas(只需要覆盖基类中的一个SetThread方法就可以了!) 3> 线程池任务列表的装载,以及线程池的控制(开始,暂停,继续,停止),请参看DEMO中Main.pas的代码。 |
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
共有评论16条
当前显示最后6条评论
|
jmyzk |
2006/7/6 15:01:15 |
点击暂停后,线程还是继续往下运行! |
99koo |
2006/7/6 17:05:25 |
楼上的朋友,你就不能看看类是怎么封装的吗,子类中没有设置暂停点而已 |
kenpa |
2006/7/10 17:18:08 |
不错,算是有价值的代码. |
hsgrass |
2007/6/20 10:29:15 |
好好,好好好,学习,学习 |
cx66868 |
2007/8/2 22:20:28 |
LVK 3方组件 哪里有下载?链接全失效了! |
hikaru |
2013/4/18 18:03:54 |
没有cookie操作,在框架上改 |
我要发表评论 |
查看全部评论 |
|
|
|