Spinlock

A HupWiki-ből...

Forgó zár (spin lock)

A spinlock valójában busy waiting-et (spin) használó szemafor. Előnye az, hogy nem kell context switch, mikor egy processz várakozik egy lock-on. Ha rövidek a várakozások, többprocesszoros rendszeren előnyös lehet.

A spinlock használatos arra, hogy meggátolja, hogy több taszk egy időben manipulálja ugyanazon adatstruktúrákat. A spinlock úgy működik, mint a kulcs az ajtóhoz. Az első taszk eléri az ajtót, elveszi a kulcsot, bemegy az ajtón, és bezárja maga mögött. Ha egy másik taszk is eléri az ajtót, és azt bezárva találja (mert egy másik taszk már benn van), akkor várakoznia kell addig, amíg az első taszk ki nem jön, és vissza nem hozza a kulcsot. Ezt a várakozást forgásnak (spinning) nevezzük, mert a taszk egy szoros ciklusban állandóan ellenőrzi, hogy szabad-e már az ajtó, azaz, hogy visszatért-e már a kulcs.