delphi 线程同步 临界区

本文介绍了Delphi中线程同步的一种基本机制——临界区。临界区确保同一时间只有一个线程能执行特定代码段。通过InitializeCriticalSection进行初始化,使用EnterCriticalSection和LeaveCriticalSection进行代码块的进入与退出同步,最后用DeleteCriticalSection释放资源。文中提供了一个实例展示如何在实际编程中运用临界区。
摘要由CSDN通过智能技术生成

dephi线程的同步,最简单的就是临界区。

临界区的意思就是,一次只能由一个线程执行的代码。


在使用临界区之前,必须使用InitializeCriticalSection( )过程来初始化它。
其声明如下:

procedure InitializeCriticalSection(var lpCriticalSection);stdcall;


lpCriticalSection参数是一个TRTLCriticalSection类型的记录,并且是变参。至于TRTLCriticalSection
是如何定义的,这并不重要,因为很少需要查看这个记录中的具体内容。只需要在lpCriticalSection中传
递未初始化的记录,InitializeCriticalSection()过程就会填充这个记录.


在记录被填充后,我们就可以开始创建临界区了。这时我们需要用 E n t e r C r i t i c a l S e c t i o n ( )和L e a v e C r i t i c a l S e c t i o n ( )来封装代码块.

当你不需要T RT L C r i t i c a l S e c t i o n记录时,应当调用D e l e t e C r i t i c a l S e c t i o n ( )过程,下面是它的声明:
procedure DeleteCriticalSection(var lpCriticalSection: TRT L C r i t i c a l S e c t i o n ) ; s t d c a l l ;


列子:

unit CriticaSect
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值