Lock-free programming i koordinon thread-et pa mutexes, duke përdorur loop-e atomike compare-and-swap (CAS) që të paktën një thread gjithmonë bën progres edhe nëse të tjerët ngecin. Asnjë thread s'mund të bllokohet nga një tjetër që mban një lock.
CAS
Compare-and-swap e vendos atomikisht një vendndodhje në një vlerë të re vetëm nëse ende mban vlerën e vjetër të pritur; përndryshe dështon dhe ti ribën. Është primitivi pas stack-eve, queue-ve dhe counter-ave lock-free.
CAS(addr, expected, new):
if *addr == expected: *addr = new; return true # atomik, i pandashëm
else: return false
old, next;
{
old = value.get();
next = old + ;
} (!value.compareAndSet(old, next));
