Сопоставление Middle Многопоточность и модель памяти обновлено

Примитив синхронизации и задача

Вопрос

Сопоставьте примитив и задачу, для которой он подходит.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Правильный примитив упрощает код: атомик для одного значения, мьютекс для группы данных, условная переменная для ожидания события, future для одноразового результата.

Правильные пары

std::atomic<int>
Счётчик запросов из многих потоков
std::condition_variable
Рабочий поток ждёт появления задачи в очереди
std::shared_mutex
Частое чтение конфигурации, редкая запись
std::scoped_lock
Захват двух мьютексов без дедлока
std::future и std::promise
Получить результат вычисления из другого потока
std::call_once
Однократная инициализация ресурса

Разбор

Правильный примитив упрощает код: атомик для одного значения, мьютекс для группы данных, условная переменная для ожидания события, future для одноразового результата.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.