IT-Lexikon › Programmierung › Spinlock

Spinlock

Programmierung Svenska → Aktualisiert: 2026-09-14

Ein Lock, das wartet, indem es in einer Schleife immer wieder nachfragt — es verbrennt CPU-Zeit, statt zu schlafen.

Einen Thread schlafen zu legen und wieder aufzuwecken kostet Kontextwechsel. Ist der kritische Abschnitt kürzer als dieser Aufwand, lohnt es sich, einfach aktiv zu warten. Spinlocks sind deshalb im Kernel Standard, wo Abschnitte oft nur wenige Instruktionen lang sind.

Zwei Dinge machen sie gefährlich. Auf einer Single-Core-Maschine ist ein Spinlock sinnlos, wenn der Lock-Halter nicht gleichzeitig laufen kann — das Warten blockiert genau den Prozess, auf den man wartet. Und im User-Space kann der Scheduler dem Lock-Halter jederzeit die CPU entziehen, worauf die Wartenden ihre gesamten Zeitscheiben verspinnen. Deshalb verwendet man dort Mutexe, die über Futex ohnehin den schnellen Pfad nehmen.

← Zurück zum Lexikon