Lock-free programming yana daidaita threads ba tare da mutexes ba, yana amfani da atomic compare-and-swap (CAS) loops domin aƙalla thread ɗaya ko da yaushe yana ci gaba ko da wasu suka tsaya. Babu thread da wani mai riƙe lock zai iya toshe shi.
CAS
Compare-and-swap atomically yana saita wuri zuwa sabuwar daraja kawai idan har yanzu yana riƙe darajar da ake tsammani ta gargajiya; in ba haka ba yana kasawa kuma ka retry. Shine primitive a bayan lock-free stacks, queues, da counters.
CAS(addr, expected, new):
if *addr == expected: *addr = new; return true # atomic, indivisible
else: return false
