Lock-free programming კოორდინაციას უწევს thread-ებს mutex-ების გარეშე, ატომური compare-and-swap (CAS) loop-ების გამოყენებით, ისე რომ ყოველთვის სულ მცირე ერთი thread მიიწევს წინ, თუნდაც სხვები გაჩერდნენ. ვერცერთ thread-ს ვერ დაბლოკავს lock-ის მჭერი სხვა.
CAS
Compare-and-swap ატომურად აყენებს ლოკაციას ახალ მნიშვნელობაზე მხოლოდ იმ შემთხვევაში, თუ ის ჯერ კიდევ იჭერს მოსალოდნელ ძველ მნიშვნელობას; წინააღმდეგ შემთხვევაში ის ვარდება და თქვენ ხელახლა ცდით. ეს არის primitive lock-free stack-ების, queue-ებისა და მთვლელების უკან.
CAS(addr, expected, new):
if *addr == expected: *addr = new; return true # ატომური, განუყოფელი
else: return false
