Non-blocking synchronization (also called lock-free synchronization) is a technique that uses special algorithms to avoid threads competing for a shared resource having their execution indefinitely postponed by mutual exclusion.
Good reasons to use it are:
- Locks cannot be acquired in interrupt handlers.
- Priority inversion does not happen if no locks are acquired.