البرمجة بلا أقفال تنسّق الخيوط دون mutexes، مستخدمةً حلقات compare-and-swap (CAS) الذرّية بحيث يُحرز خيط واحد على الأقل تقدّمًا دائمًا حتى لو تعثّر الآخرون. لا يمكن لأي خيط أن يُعاق بواسطة آخر يمسك قفلًا.
CAS
Compare-and-swap يضبط موقعًا ذرّيًا على قيمة جديدة فقط إذا كان لا يزال يحمل القيمة القديمة المتوقّعة؛ وإلا يفشل فتُعيد المحاولة. إنه الأداة البدائية خلف المكدّسات والطوابير والعدّادات بلا أقفال.
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));
