Everything about Spinlock
In computing, a lock which causes a thread to loop continuously
In software engineering, a spinlock is a lock that causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking whether the lock is available. Since the thread remains active but is not performing a useful task, the use of such a lock is a kind of busy waiting. Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on blocks or "goes to sleep". Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: SpinlockA 5-minute orientation
- Pick up a classic book: Introduction to parallel programmingThe most-reprinted book on the subject
- Read the landmark paper: Towards quantification of pulsed spinlock and CEST at clinical MR scanners: an analytical interleaved saturation–relaxation (ISAR) approachCited 42 times
- Go sideways: Test-and-setA closely related topic
- Go sideways: CPUIDA closely related topic
📖 Definitions
Noun A lock which causes a thread trying to acquire it simply to wait in a loop ("spin") while repeatedly checking if the lock is available.
Verb To use a spinlock.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Towards quantification of pulsed spinlock and CEST at clinical MR scanners: an analytical interleaved saturation–relaxation (ISAR) approach
Comparison of model‐free Lorentzian and spinlock model‐based fittings in quantitative CEST imaging of acute stroke
Efficient Implementation of Application-Aware Spinlock Control in MPSoCs
Protonen-Spinlock und T1ρ-gewichtete MR-Bildgebung bei 1,5 T
Task-Unit LLQ-based Spinlock Techniques for Mitigating Shared Memory Access Contention in Multi-Core RTOS Environments
RON: A Topology-Guided Spinlock with Bounded-Waiting Guarantees
📚 Books worth reading
Introduction to parallel programmingSteven Brawer · 1989
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Test-and-set In computer science, the test-and-set instruction is an instruction used to write (set) a flag value to a memory location and return its old value as a…
- CPUID In the x86 architecture, the CPUID instruction (identified by a CPUID opcode) is a processor supplementary instruction (its name derived from "CPU Identificatio…
- Busy waiting In computer science and software engineering, busy-waiting, busy-looping or spinning is a technique in which a process repeatedly checks to see if a condition…
- Ticket lock In computer science, a ticket lock is a synchronization mechanism, or locking algorithm, that is a type of spinlock that uses "tickets" to control which…
- Fetch-and-add In computer science, the fetch-and-add (FAA) CPU instruction atomically increments the contents of a memory location by a specified value. That is, fetch-and-ad…
- Synchronization (computer science) In computer science, synchronization is the task of coordinating multiple processes to join up or handshake at a certain point, in order to reach an agreement…
- List of x86 instructions The x86 instruction set refers to the set of instructions that x86-compatible microprocessors support. The instructions are usually part of an executable…
- X86 assembly language x86 assembly language is a family of low-level programming languages that are used to produce object code for the x86 class of processors. Previous evolutions…