Junior — Middle
Lze vysvětlit koncept interlocked a jeho použití v vícevláknovém programování?
sobes.tech AI
Odpověď od AI
Interlocked je sada atomových operací v C#, které zajišťují bezpečnou změnu sdílených dat v prostředí s více vlákny bez použití těžkých zámků.
Hlavní operace interlocked zahrnují:
- Increment/Decrement — atomické zvýšení nebo snížení hodnoty.
- CompareExchange — porovnání a výměna hodnoty, pokud je rovna očekávané.
- Exchange — výměna hodnoty za novou.
Použití interlocked umožňuje zabránit podmínkám závodu při aktualizaci proměnných, například počítadel nebo vlajek, a zajišťuje správnost a výkon.
Příklad použití:
int counter = 0;
// Atomické zvýšení počítadla
Interlocked.Increment(ref counter);
// Atomické porovnání a výměna
int original = Interlocked.CompareExchange(ref counter, 10, 5);
Tímto způsobem je interlocked nízkoúrovňovým nástrojem pro bezpečnou práci se sdílenými daty v multithreadovém programování.