Как несколько потоков могут изменять одни и те же данные вообще без блокировок? Наука о Lock-Free программировании и проблеме ABA
Почему всё останавливается, когда каждый ждёт другого: Теория взаимных блокировок (Deadlock), графы распределения ресурсов, алгоритм банкира и Livelock