Классический пример: предположим у нас есть два вида процессов - "читатели" и "писатели", причем работают данные пишутся и читаются в стек (читать и писать можно только с вершины, при завершении чтения инкремент уменьшается на 1, при завершении записи - увеличивается на 1), пишут и читают они по 4 байта.
Что произойдет, если доступ к стеку не будет блокироваться? Предположим, что в стеке уже есть сколько-то байт информации. Читатель начинает работу, считывает 3 байта, но планировщик решает, что хватит уже этому процессу работать и передаёт управление писателю, который впихивает на вершину стека свои 4 байта. После этого читатель снова получает управление и читает совершенно левый байт информации и в итоге мы имеем две запоротые 4х-байтовые "записи"