сразу с примера(все любят игры)
пусть есть три юнита и они взаимодействуют путём обмена сообщений.
юнит1 стоит и ничего не делает у него 100 хп
юнит2 кастует на юнит1 магию -100 хп(она отнимает 100хп)
юнит3 лечит юнит1 на +50 хп (правила лечения больше 100хп не лечит, те у кого 0хп тоже не личет)
всё это происходит в один и тот же момент времени
если последовательно исполнять эти события, то юнит1 умирает
два варианта смерти
100 - 100 => 0; 0 + 50 => 0 (ибо уже труп)
100 + 50 => 100(итак здоров); 100 - 100 = 0
а предполагалось
100 + (-100 + 50) => 50
а знает ли кто-нибудь что-то интересное почитать по таким вопросам.
p.s. пример демонстрирует разницу concurrent vs parallel