线程同步--临界区技术

    技术2026-05-04  3

    临界区技术包括下面4条API语句:  InitializeCriticalSection(CS);  //初始化临界区  EnterCriticalSection(CS);   //进入临界区  LeaveCriticalSection(CS);   //退出临界区  DeleteCriticalSection(CS);  //销毁临界区

     

     

    示例:

    uses Windows;

    var  CS:TRTLCriticalSection;

     

     

    类中使用,可简化为下面结构:private  FLock:TRTLCriticalSection;  //声明一个临界区变量    {临界区}  procedure Lock;  procedure UnLock;

     

    implementation

     

    constructor TMyClass.create;begin  inherited create;

      {创建一个临界区}  InitializeCriticalSection(FLock);end;

     

    destructor TMyClass.Destroy;begin  DeleteCriticalSection(FLock);  //销毁临界区

      inherited;end;

     

    procedure TMyClass.Lock;begin  EnterCriticalSection(FLock);   //进入临界区end;

     

    procedure TMyClass.UnLock;begin  LeaveCriticalSection(FLock);   //退出临界区end;

     

     

    ===================================== 以后类中使用临界区,操作可简化为:

     Lock;   try          ...要保护的代码....     ...

         ...   finally     UnLock;   end;

    最新回复(0)