Sekcja krytyczna – fragment kodu programu, w którym korzysta się z zasobu dzielonego, a co za tym idzie, w danej chwili może być wykorzystywany przez co najwyżej jeden wątek. System operacyjny dba o synchronizację, jeśli więcej wątków żąda wykonania kodu sekcji krytycznej, dopuszczany jest tylko jeden wątek, pozostałe są wstrzymywane. Dąży się do tego, aby kod sekcji krytycznej był krótki – wykonywał się szybko. Poprzez ostrożne kontrolowanie, które zmienne są modyfikowane wewnątrz i poza sekcją krytyczną (zwykle poprzez uzyskiwanie dostępu do istotnego stanu tylko z zewnątrz), zapobiega się współbieżnemu dostępowi do tego stanu. Sekcja krytyczna jest zwykle używana, kiedy program wielowątkowy musi uaktualnić wiele powiązanych zmiennych, tak żeby inny wątek nie dokonał szkodliwych zmian tych danych. W odnośnej sytuacji, sekcja krytyczna może być użyta, żeby zagwarantować, że wspólny zasób – np. drukarka – jest używana tylko przez jeden proces w określonym czasie.

Sposób implementacji sekcji krytycznych jest zależny od systemu operacyjnego.