多线程技术在Delphi数据库编程中应用 (2)

1、线程的创建

笔者利用Delphi语言进行了程序的开发和编写, 该语言的优点之一是它有一整套线程同步方法,可以很方便地使用。

一个进程的主线程是由操作系统自动生成,如果要让一个主线程创建额外的线程,在WinAPI中,可以调用CreateThread来完成。在Delphi中,所有的线程类可以从TThread类派生得到,如下:

type

OptimizeThread = class(TThread)

private

{ Private declarations }

DocExec:TADOCommand;

CaseID:Integer; //优化方案代码

protected

procedure Execute; override;

procedure DoAnalyse;virtual;abstract;

end;
这样,就从线程基类TThread派生了一个自己的OptimizeThread类,并在此类中添加了新的变量和方法。然后,用户还需要从OptimizeThread类中派生出一个可供使用的线程对象,如下:
ScheOptimizeThread = class (OptimizeThread)

private

count :integer; //记录航班的分组

protected

procedure DoAnalyse;override;

public

constructor Create(Exec:TADOCommand;CaseID,count:Integer);

end;

2、线程的挂起和恢复

当线程被挂起时,CPU不分配时间片给该线程,线程停止在挂起命令发出时的代码处,直到被允许继续进行。想要挂起线程只要调用线程的suspend方法,或者设置线程对象的suspended为True。若要唤醒线程,则只要调用线程的resume方法,或者设置线程对象的suspended为False即可。

3、线程的终止

当线程从Execute()退出时,线程终止,触发OnTerminate事件,从而清除线程对象。也可以在线程运行过程中,由其他线程控制该线程的退出,这时需要调用线程对象的Terminate方法,并设置该线程对象的Terminate属性为True。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值