Critical Section
Hej Eksperter.Jeg er dybt begravet i en artikel skrevet af Martin Harvey (http://www.pergolesi.demon.co.uk/prog/threads/ToC.html).
Artiklen handler om multithreading, teorier og metoder. Jeg er nu stødt på CriticalSections og har et lille spørgsmål til dette.
Når man deklarerer en CriticalSection sker det på følgende måde:
EnSection : TRTLCriticalSection;
Når jeg så senere skal skal benytte CriticalSections til at sikre mig at kun en tråd kan ændre værdi af en variabel bruger jeg:
EnterCriticalSection(EnSection);
Hvorefter jeg så skulle kunne være sikker på at de herefter ændringer ikke kan påvirkes på nuværende tidspunkter af andre threads - f.eks:
<TList>.Delete(i);
Herefter benyttes følgende til at forlade dette sikre område:
LeaveCriticalSection(EnSection);
Mit spørgsmål er nu: Hvordan sker det at de andre tråde/CriticalSection'en/etc. ved at de ikke kan tilgå den TList i dette øjeblik? Kan denne TList ikke tilgås ved et sted at undlade at benytte criticalsections - så det faktisk er mit job at sørge for at alle steder hvor denne Tlist skal benyttes, er beskyttet af Enter.. og LeaveCri... ?
Vil lige sikre mig jeg har forstået det korrekt.
