Spin
Locks
Spin locks are essentially mutex locks. The difference between a mutex lock and a
spin lock is that a thread waiting to
acquire a spin lock will keep trying to acquire the lock without sleeping. In
comparison, a mutex lock may sleep if it is unable to acquire the lock. The
advantage of using spin locks is that they will acquire the lock as soon as it
is released, whereas a mutex lock will need to be woken by the operating system
before it can get the lock. The disadvantage is that a spin lock will spin on a
virtual CPU monop-olizing that resource. In comparison, a mutex lock will sleep
and free the virtual CPU for another thread to use.
Often mutex locks are implemented to be a hybrid of
spin locks and more traditional mutex locks. The thread attempting to acquire
the mutex spins for a short while before blocking. There is a performance
advantage to this. Since most mutex locks are held for only a short period of
time, it is quite likely that the lock will quickly become free for the waiting
thread to acquire. So, spinning for a short period of time makes it more likely
that the waiting thread will acquire the mutex lock as soon as it is released.
However, continuing to spin for a long period of time consumes hardware
resources that could be better used in allowing other software threads to run.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.