Istnieją w literaturze pewne niejasności co do relacji pomiędzy różnymi sekcjami krytycznymi w tym samym programie. Zasadniczo, zasób, który musi być chroniony przed współbieżnym dostępem, może być dostępny z różnych fragmentów kodu. Każdy fragment musi być chroniony przez wspólny semafor. Czy teraz każdy fragment stanowi sekcję krytyczną, czy też wszystkie fragmenty chronione przez ten sam semafor stanowią jedną sekcję krytyczną? Ta niejasność jest widoczna w definicjach sekcji krytycznej takich jak „...fragment kodu, który może być wykonywany tylko przez jeden proces lub wątek jednocześnie.” Ta definicja jest prawdziwa tylko wtedy, gdy cały dostęp do chronionego zasobu jest zawarty w jednym fragmencie kodu, co wymaga albo definicji fragmentu kodu, albo tego, by sam kod był poniekąd sztuczny.

Sekcje krytyczne realizuje się np. z wykorzystaniem muteksów lub semaforów. Ponadto systemy operacyjne posiadają zwykle specjalne obiekty do tego rodzaju synchronizacji w obrębie wątków jednego procesu.

Brak wzajemnego wykluczania się wykonywania sekcji krytycznych może spowodować błędy wykonania, np. dwukrotne zapisanie danej albo niepoprawna modyfikacja zasobu (patrz poniższy przykład).