Junior — Middle
Vysvětlete principy fungování SpinLock a v jakých scénářích se používá.
sobes.tech AI
Odpověď od AI
SpinLock je primitivní synchronizační mechanismus, který při pokusu získat již obsazený zámek neblokuje vlákno do stavu čekání (sleep), ale provádí aktivní cyklus ("spin"), kontrolující dostupnost zámku.
Princip fungování:
- Vlákno se pokusí získat zámek.
- Pokud je zámek volný, získá ho a pokračuje.
- Pokud je zámek obsazen, vlákno v cyklu kontroluje jeho stav, aniž by přešlo do režimu spánku.
Kdy použít:
- Když je doba čekání na zámek velmi krátká, a přechod do sleep/wakeup by byl dražší.
- V systémech s nízkou latencí a vysokou konkurencí.
Nevýhody:
- Při dlouhém čekání plýtvá CPU zdroji.
Příklad v pseudokódu:
while !atomic_compare_and_swap(&lock, 0, 1) {
// aktivní čekání
}
// kritická sekce
lock = 0