Non-blocking synchronization is a technique that uses special algorithms to avoid that the execution of threads competing for a shared resource through mutual exclusion are indefinitely postponed.
Good reasons to use it are: