Delphi와 TRtlcritical Section의 차이점

864 단어 Delphi
TRtlcriticalSection은 윈도우즈 유닛에 정의된 구조체입니다.TCritical Section은 SyncObjs 단원에서 이루어진 클래스로 위의 임계구 조작 API 함수를 봉인하여 델피의 사용을 간소화하고 편리하게 한다.
TCriticalSection과 같습니다.Enter, 바로 EnterCriticalSection이라는 API 함수가 호출되었습니다.
다중 스레드 프로그램에서 만약에 각 스레드가 같은 자원에 접근하려면 하나의 변수와 같다. 이때 스레드 동기화 기술을 사용해야 스레드 사이에 충돌과 방해가 생기지 않는다.
스레드 동기화에는 여러 가지 방법이 있는데 임계 구역을 사용하는 것이 가장 간단하고 효율이 가장 높은 방법(CPU 사용 시간이 가장 적음)
임계 영역 코드는 다음과 같습니다.
먼저 TRTLCriticalSection 유형의 글로벌 변수를 선언합니다.
var
MyCs:TRTLCriticalSection;

프로그램이 시작되거나 라인을 만들기 전에 초기화
InitializeCriticalSection(MyCs);//      

프로그램이 끝나거나 모든 라인이 끝난 후에 삭제합니다
DeleteCriticalSection(MyCs);//     

라인에서 동기화할 부분에 추가합니다.
EnterCriticalSection(MyCs); //     
try
    //    
finally
    LeaveCriticalSection(MyCs); //     
end;

좋은 웹페이지 즐겨찾기