Avatar billede razersedge Nybegynder
07. juni 2003 - 23:30 Der er 1 kommentar og
1 løsning

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.
Avatar billede arne_v Ekspert
07. juni 2003 - 23:36 #1
Korrekt.

Critical section er hvad man kalder en "coorperative mechanism".
Avatar billede razersedge Nybegynder
08. juni 2003 - 10:56 #2
Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester