delphi:临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
来源:互联网 发布:js获取当前位置经纬度 编辑:程序博客网 时间:2024/05/15 23:52
临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
TRtlCriticalSection 是一个结构体,在windows单元中定义;
是InitializeCriticalSection,EnterCriticalSection,LeaveCriticalSection, DeleteCriticalSection 等这几个kernel32.dll中的临界区操作API的参数;
TCriticalSection是在SyncObjs单元中实现的类,它对上面的那些临界区操作API函数进行了了封装,简化并方便了在Delphi的使用;
如TCriticalSection.Enter;就是调用了EnterCriticalSection这个API函数。
多线程程序中,如果各个线程要访问同一个资源,如同一个变量
这时就要使用线程同步技术,才不会使线程之间产生冲突和干扰
线程同步有多种办法,使用临界区是其中最简单,也是效率最高的办法(CPU占用时间最少)
使用临界区代码如下:
先声明一个TRTLCriticalSection类型的全局变量
var
MyCs:TRTLCriticalSection;
在程序开始或建立线程之前,初始化
InitializeCriticalSection(MyCs);//初始化临界区
在程序结束或所有线程结束后,删除它
DeleteCriticalSection(MyCs);//删除临界区
再在线程中要同步的地方加入
EnterCriticalSection(MyCs); //进入临界区
try
//程序代码
finally
LeaveCriticalSection(MyCs); //离开临界区
end;
- delphi:临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
- 【转】临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
- 【转】临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
- 临界区对象TCriticalSection与TRTLCriticalSection的区别
- delphi临界区
- delphi 线程同步 临界区
- 互斥对象与临界区对象的区别
- 互斥对象与临界区的区别!
- delphi中临界操作方法
- delphi中临界操作方法
- delphi中临界操作方法
- Delphi类与对象的概念
- Delphi类与对象的概念
- Delphi类与对象的概念
- delphi类与对象的转化
- Delphi中WideString与String的区别
- Delphi try except 与 finally的区别
- Delphi中String与WideString的区别
- 线程----BlockingQueue (转)
- 国外博士论文下载
- 【android学习之十五】——多媒体2:相机Camera
- 学后感,一点小心情。
- Android Animation
- delphi:临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
- wcf 宿主不通的优异(NETTCP协议)
- SQL Server2005使用CTE实现递归
- web项目web.xml的配置中<context-param>配置是起什么作用的
- 光棍节成交3369万笔 支付宝再创新世界纪录
- android ndk-build 时出现target pattern contain no % 的解决方法
- 在Eclipse如何设置android关联文档
- 数据库访问优化法则详解之利用更多的资源
- ls -1的用法