Блокировка локом это разновидность пессимистичной блокировки, которая вынуждает определенный набор инструкций выполняться строго последовательно как если бы это был один и тот же поток. Это достаточно дорого, особенно если записывают реже чем читают, хотя есть и для таких сценариев свои решения (rwlock). Альтернатива это дать возможность каждому потоку делать что угодно в сумме с индикатором, по которому можно понять что за время пока ты пытался что-то сделать в одном потоке, другой был быстрее, уже поменял данные (непредсказуемым образом конечно) и потому у тебя только один выход: заново их прочесть, попробовать по-новому, надеясь что в этот раз успеешь. Дата вершин (обычно лонг) и есть этот индикатор.