IT-lexikon › Programmering › Spinlock

Spinlock

Programmering In English → Uppdaterad: 2026-07-31

Ett lås som väntar genom att snurra i en loop och fråga igen — bränner CPU i stället för att sova.

Att lägga en tråd att sova och väcka den kostar kontextväxlingar. Är den kritiska sektionen kortare än den kostnaden lönar det sig att bara vänta aktivt. Spinlock är därför standard inuti kärnan, där sektioner ofta är några få instruktioner långa.

Två saker gör dem farliga. På en enkelkärnig maskin är ett spinlock meningslöst om inte den som håller låset kan köra samtidigt — snurrandet hindrar just den process man väntar på. Och i användarrymd kan schemaläggaren när som helst ta CPU:n från låshållaren, varpå väntarna snurrar bort hela sina tidsskivor. Därför använder man mutex där, som via futex tar den snabba vägen ändå.

← Tillbaka till lexikonet