IT-lexikon › Programmering › Aktiv väntan (busy waiting)

Aktiv väntan (busy waiting)

Programmering In English → Uppdaterad: 2026-11-03

Att vänta genom att låta processorn snurra i en loop som inte gör något nyttigt, tills ett villkor är uppfyllt eller tiden har gått.

Den äldsta fördröjningen i firmware är for (i = 0; i < 100000; i++);. Den har två klassiska buggar: optimeraren tar bort loopen helt om räknaren inte är volatile, och fördröjningen slutar stämma så fort någon ändrar klockfrekvensen eller kompilatorflaggor. Linux kalibrerar sin fördröjningsloop vid uppstart — det är det talet som skrivs ut som BogoMIPS.

För korta väntetider, några mikrosekunder i en drivrutin, är aktiv väntan ofta rätt val: att sova och väcka kostar mer än själva väntan. För allt längre är en timer eller ett RTOS-anrop som låter andra uppgifter köra bättre. En spinlock är aktiv väntan med ett lås som villkor.

← Tillbaka till lexikonet