Delphi와 TRtlcritical Section의 차이점
864 단어 Delphi
TCriticalSection과 같습니다.Enter, 바로 EnterCriticalSection이라는 API 함수가 호출되었습니다.
다중 스레드 프로그램에서 만약에 각 스레드가 같은 자원에 접근하려면 하나의 변수와 같다. 이때 스레드 동기화 기술을 사용해야 스레드 사이에 충돌과 방해가 생기지 않는다.
스레드 동기화에는 여러 가지 방법이 있는데 임계 구역을 사용하는 것이 가장 간단하고 효율이 가장 높은 방법(CPU 사용 시간이 가장 적음)
임계 영역 코드는 다음과 같습니다.
먼저 TRTLCriticalSection 유형의 글로벌 변수를 선언합니다.
var
MyCs:TRTLCriticalSection;
프로그램이 시작되거나 라인을 만들기 전에 초기화
InitializeCriticalSection(MyCs);//
프로그램이 끝나거나 모든 라인이 끝난 후에 삭제합니다
DeleteCriticalSection(MyCs);//
라인에서 동기화할 부분에 추가합니다.
EnterCriticalSection(MyCs); //
try
//
finally
LeaveCriticalSection(MyCs); //
end;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.