Junior — Middle
Kun je het concept van interlocked en de toepassing ervan in multithread programming uitleggen?
sobes.tech AI
Antwoord van AI
Interlocked is een verzameling van atomaire bewerkingen in C# die veilige wijziging van gedeelde gegevens in een multithread-omgeving mogelijk maken zonder het gebruik van zware blokkades.
De belangrijkste bewerkingen van interlocked omvatten:
- Increment/Decrement — atomair verhogen of verlagen van de waarde.
- CompareExchange — vergelijking en vervanging van de waarde als deze gelijk is aan de verwachte waarde.
- Exchange — vervanging van de waarde door een nieuwe.
Het gebruik van interlocked helpt racecondities te voorkomen bij het bijwerken van variabelen zoals tellers of vlaggen, en zorgt voor correctheid en prestaties.
Voorbeeld van gebruik:
int counter = 0;
// Atomair verhogen van de teller
Interlocked.Increment(ref counter);
// Atomair vergelijken en vervangen
int original = Interlocked.CompareExchange(ref counter, 10, 5);
Zo is interlocked een low-level hulpmiddel voor veilig werken met gedeelde gegevens in multithread-programmering.