Delphi Indy Server 및 ThreadSafe 변수를 더 잘 이해하려고합니다.전역 원자 변수가 TIdHTTPServer.OnCommandGet threadsafe 내부에서 사용됩니까?
필자는 Delphi Indy 웹 서버에 "히트 수"의 간단한 카운터를 원한다고 말합니다. 안부 확인이 구현은 안전을 스레드에
procedure MyWebServer.CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
GlobalWebHits := GlobalWebHits+1;
.....
end;
: 그래서
var: GlobalWebHits: Integer
그리고 TIdHttpServer.OnCommandGet 내 처리기 내부
내가 그것을 증가 글로벌 정수를 선언? 두 스레드가 동시에 GlobalWebHits를 업데이트하려고 할 가능성이 있습니까?중요 섹션에서 증분을 래핑해야합니까?
"원자 변수"라는 용어는 간단한 읽기 또는 쓰기 작업을 가정합니다. 다른 작업에는 항상 일종의 동기화가 필요합니다 (적어도 Intel x86 또는 x64 CPU의 경우 해당) – kludg