Powyższy fragment programu przepisany z użyciem blokad mógłby zostać przepisany w następujący sposób:

Podzadanie APodzadanie B1A: Zablokuj zmienną V1B: Zablokuj zmienną V2A: Odczytaj zmienną V2B: Odczytaj zmienną V3A: Dodaj 1 do zmiennej V3B: Dodaj 1 do zmiennej V4A: Zapisz wartość w zmiennej V4B: Zapisz wartość w zmiennej V5A: Odblokuj zmienną V5B: Odblokuj zmienną V

Tylko jedno z podzadań z sukcesem zablokuje zmienną i uzyska do niej wyłączny dostęp, podczas gdy drugie będzie musiało czekać na jej odblokowanie. Zastosowanie powyższej konstrukcji daje gwarancję poprawnego wykonania programu, kosztem jest jednak jego spowolnienie, które może być znaczne.

Blokowanie wielu zmiennych przy użyciu nieatomowych blokad może spowodować zakleszczenie. Atomowość blokady to własność, która gwarantuje, że wszystkie zmienne blokowane są razem, to znaczy, jeśli dwa podzadania próbują zablokować kilka zmiennych, to uda się to tylko jednemu z nich i blokada powstanie na wszystkich zmiennych. Jeśli natomiast blokady nie są atomowe, to może się zdarzyć, że jeśli dwa podzadania próbują zablokować te same dwie zmienne, to jeden z nich zablokuje jedną, a drugi drugą. W powstałej sytuacji oba podzadania czekają na siebie nawzajem i żaden z nich nie może zakończyć działania.