"Ребенок открывает мир"
Вова Патрышев
открыл для себя immutable структуры и радуется тому, насколько все стало проще в многотредной программе. Я с ним, что нечасто бывает, тут совершенно солидарен, но хочу отметить, что есть еще один способ радикального упрощения многотредной мутексной хуйни:
А именно - немножко подумать и выкинуть все треды, пересадив всю активность например в event loop UI треда, посредством всяких таймеров и обработчиков idle. Это не то, чтобы метод абсолютно универсальный, но большая часть логики туда обычно убирается (а меньшая - всякие реально длинные вычисления, которые будут тормозить интерфейс, обычно убирается в еще один "фоновый" тред или внешний процесс).