Nei computer, una routine di sezione critica è un approccio al problema di due o più programmi che competono per la stessa risorsa contemporaneamente. Immagina che due programmi vogliano incrementare un contatore. Se lo fanno entrambi allo stesso tempo: recupera l'operando, lo incrementa e memorizza il valore incrementato, allora uno degli incrementi andrà perso. Sui processori odierni, i programmi possono utilizzare un'istruzione di lettura-modifica-scrittura atomica, come fetch-and-op, compare-and-swap o exchange. Sui primi processori, queste istruzioni non esistevano; il problema era realizzare l'incremento atomicamente, usando solo le normali istruzioni dell'assemblatore. Il problema è stato definito e risolto per la prima volta da Edsgar Dijkstra. "Routine sezione critica" era il suo nome per il codice che risolveva il problema.