There are two types of non-blocking thread synchronization algorithms - lock-free, and wait-free.
https://rethinkdb.com/blog/lock-free-vs-wait-free-concurrency
https://en.wikipedia.org/wiki/Non-blocking_algorithm
https://en.wikipedia.org/w/index.php?title=Non-blocking_synchronization&redirect=no