Junior — Middle
Je možné vysvetliť koncept interlocked a jeho použitie v viacvláknovom programovaní?
sobes.tech AI
Odpoveď od AI
Interlocked je sada atomárnych operácií v C#, ktoré zabezpečujú bezpečnú zmenu zdieľaných dát v prostredí s viacerými vláknami bez použitia ťažkých zámkov.
Hlavné operácie interlocked zahŕňajú:
- Increment/Decrement — atomické zvýšenie alebo zníženie hodnoty.
- CompareExchange — porovnanie a výmena hodnoty, ak je rovná očakávanej.
- Exchange — výmena hodnoty za novú.
Použitie interlocked umožňuje zabrániť podmienkam súťažného boja pri aktualizácii premenných, ako sú čítače alebo vlajky, zabezpečujúc správnosť a výkon.
Príklad použitia:
int counter = 0;
// Atomické zvýšenie čítača
Interlocked.Increment(ref counter);
// Atomické porovnanie a výmena
int original = Interlocked.CompareExchange(ref counter, 10, 5);
Takto je interlocked nízkoúrovňovým nástrojom na bezpečnú prácu so zdieľanými dátami v multithreadovom programovaní.