Na przykład: Przypuśćmy, że sekcja kodu modyfikuje jakieś dane w kilku krokach. W tym samym czasie uruchamiany jest inny wątek, który próbuje odczytać te same dane. Ze względu na to, że dane są w trakcie modyfikacji przez pierwszy wątek, ich stan jest niespójny. Wynik działania drugiego wątku może być nieoczekiwany. Jeśli drugi wątek spróbuje ponadto zmodyfikować dane, staną się one niespójne i przestaną być użyteczne dla któregokolwiek z wątków. Z tego względu wspólne dane używane w sekcjach krytycznych powinny być zabezpieczone, to znaczy inne procesy czytające lub modyfikujące dane powinny być wykluczone.
Nazwą mutex określane są obiekty negocjujące dostęp pomiędzy wątkami, zwane również blokadami.
Wymuszanie wzajemnego wykluczania Istnieją dwa sposoby do wymuszania wzajemnego wykluczania:
Rozwiązania sprzętowe Na systemach jedno-procesorowych najczęstszym sposobem wzajemnego wykluczania w jądrach systemów operacyjnych jest wyłączenie przerwań dla jak najmniejszej liczby instrukcji kodu, chroniąc przed uszkodzeniem struktury dzielonych danych sekcji krytycznej.