Chinaunix首页 | 论坛 | 博客
  • 博客访问: 120572
  • 博文数量: 17
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-22 17:30
文章分类

全部博文(17)

文章存档

2011年(1)

2008年(16)

我的朋友

分类:

2008-12-08 22:18:07

多线程程序中,如果各个线程要访问同一个资源,如同一个变量这时就要使用线程同步技术,才不会使线程之间产生冲突和干扰线程同步有多种办法,使用临界区是其中最简单,也是效率最高的办法(CPU占用时间最少)

使用临界区代码如下:
 
先声明一个TRTLCriticalSection类型的全局变量
var
  MyCs: TRTLCriticalSection;

在程序开始或建立线程之前,初始化
  InitializeCriticalSection(MyCs); //初始化临界区
在程序结束或所有线程结束后,删除它
  DeleteCriticalSection(MyCs); //删除临界界

再在线程中要同步的地方加入
EnterCriticalSection(MyCs); //进入临界区
try
  //程序代码
finally
  LeaveCriticalSection(MyCs); //离开临界区
end;
阅读(1240) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~