Sobes.tech
Junior — Middle

Vysvetlite princípy fungovania SpinLock a v akých scenároch sa používa.

sobes.tech AI

Odpoveď od AI

SpinLock je primitív synchronizácie, ktorý pri pokuse získať už obsadený zámok neblokuje vlákno do stavu čakania (sleep), ale vykonáva aktívny cyklus ("spin"), kontrolujúc dostupnosť zámku.

Princíp fungovania:

  • Vlákno sa pokúsi získať zámok.
  • Ak je zámok voľný, získa ho a pokračuje.
  • Ak je zámok obsadený, vlákno v cykle kontroluje jeho stav, bez prechodu do režimu spánku.

Kedy použiť:

  • Keď je doba čakania na zámok veľmi krátka, a prechod do sleep/wakeup by bol drahší.
  • V systémoch s nízkou latenciou a vysokou konkurenciou.

Nevýhody:

  • Pri dlhom čakaní plytvá CPU zdrojmi.

Príklad v pseudokóde:

while !atomic_compare_and_swap(&lock, 0, 1) {
    // aktívne čakanie
}
// kritická sekcia
lock = 0