Lock-free programming ngoordinasi thread tanpa mutex, nganggo loop atomik compare-and-swap (CAS) supaya sethithiké siji thread tansah maju senadyan liyané mandheg. Ora ana thread sing bisa diblokir déning liyané sing nyekel lock.
CAS
Compare-and-swap kanthi atomik nyetèl sawijining lokasi menyang nilai anyar mung yèn isih nyekel nilai lawas sing dikarepaké; yèn ora, dhèwèké gagal lan sampeyan coba manèh. Iku primitif ing mburiné stack, queue, lan counter lock-free.
CAS(addr, expected, new):
if *addr == expected: *addr = new; return true # atomic, indivisible
else: return false
old, next;
{
old = value.get();
next = old + ;
} (!value.compareAndSet(old, next));
