Lock-Free: A data structure is lock-free if at least one thread can execute it at any given time. It’s possible that all of the other threads are starved. The distinction between obstruction-freedom and obstruction-freedom is that even if no threads are suspended, there is at least one non-starving thread.