求线程池的简单实现。(100分)

L

logpie

Unregistered / Unconfirmed
GUEST, unregistred user!
谁有线程池的实现啊,例子稍微简单点,主要看看实现原理。谢谢
 
AThread=class(TThread)
public
property IsWork:boolean read FIsWork;
end;
在线程的主执行函数里用WaitForSingleObject函数等待信号
在没有信号的开始出使化FIsWork:=False;如果有信号就把
FIsWork:=True;,完成工作以后FIsWork:=False;继续用
WaitForSingleObject等待新的信号,主控制程序就是通过
IsWork来判断线程状态,通过SetEvent来分配任务
我在网吧里,写了这么多字,最开始写好了,结果我一
发出IE就挂了,真是$@$@$@%@%$,这是我第二次写的,
 
没有必要用线程池吧, Delphi创建对象的速度是很快的
 
创建线程消耗是很大的,做线程池是有必要的,JAVA里还有对象池了,
都是提高效率的好办法
 
线程永远不退出就行了, 工作完成了就 Suspend ,并加入空闲队列
有任务了就Resume,离开空闲队列,开始干活,
直到线程需要被释放,退出过程
 
我上面的哪个就是这么做的,其实原理查不多吗
 
以前写过:
http://61.132.118.185:8080/datanew/pooler.zip
 
原理基本也是上面所说。
 
多人接受答案了。
 
顶部