advanced
Рефакторинг C++ кода для многопоточности
Оптимизация устаревшего кода с использованием современных стандартов C++20 и устранение гонок данных.
📝 Prompt İçeriği
Действуй как архитектор ПО уровня Senior. Тебе предоставлен фрагмент устаревшего кода на C++11, использующий неэффективные мьютексы и глобальные переменные. Твоя задача: 1) Проанализировать код на предмет потенциальных гонок данных (data races) и взаимных блокировок (deadlocks). 2) Полностью переписать код, используя стандарт C++20, применяя std::jthread, std::atomic, std::latch или барьеры памяти там, где это уместно. 3) Обеспечить исключительную безопасность (exception safety). 4) Добавить подробные комментарии, объясняющие выбор конкретных примитивов синхронизации. Выведи только результирующий код и краткий отчет о производительности.