Konsekwencja braku synchronizacji Rozpatrzmy dwa procesy (P1, P2), które po wykonaniu zadania zwiększają pewien globalny licznik. Ponadto każdy proces dysponuje swoją lokalną pamięcią, niedostępną dla pozostałych.

Zwiększenie licznika jest realizowane w trzech krokach: skopiowanie aktualnej wartości licznika do lokalnej zmiennej, zwiększenie tej wartości, zapisanie nowej wartości do globalnego licznika.

Program, który to wykonuje, składa się z następujących kroków:

1: x = licznik 2: x = x + 1 3: licznik = x

Poszczególne kroki jako takie są niepodzielne (atomowe), lecz wykonanie składającego się z nich programu może być w dowolnej chwili przerwane.

proces działanie licznik x1 x2 komentarz 1 ? ? sytuacja początkowa, licznik zainicjowany na wartość 1 P1 x1 = licznik 1 1 ? system operacyjny przekazuje sterowanie do P1, P1 wykonuje pierwszą instrukcję P1 x1 = x1 + 1 1 2 ?