← ALB News · curated headline

Один счётчик, десять потоков и неправильный результат: разбираемся в многопоточности C++

Habr · RU · Programming · 10/29/2026, 3:57:08 PM

Представим простую задачу: десять потоков должны увеличить общий счётчик по миллиону раз. Математика элементарная — в результате ожидаем десять миллионов. Но программа может вывести совсем другое число. Причём ошибка не обязательно будет повторяться при каждом запуске. Разберёмся, почему так происходит, как исправить проблему с помощью std::mutex и std::atomic , когда нужны std::condition_variable и std::future , а также чем std::jthread удобнее обычного std::thread . Все примеры рассчитаны на C++20, если не указано иное. Читать далее

Continue to Habr →

You are being forwarded in 6s — stay on this page