Что выведет следующая программа?
Anonymous Quiz
7%
Неопределённое поведение
42%
Ошибка компиляции из-за переопределения макроса
21%
Программа выведет число 2
29%
Программа выведет число 1
2%
Программа выведет оба числа
Гарантированно ли aligned == true?
Anonymous Quiz
16%
Зависит от компилятора, стандарт не гарантирует
28%
Да, начиная с C++11
16%
Нет, new не учитывает alignas
28%
Да, начиная с C++17
11%
Только если использовать std::aligned_alloc
Что вернёт код?
Anonymous Quiz
9%
0b0011 = 3
49%
0b0110 = 6
16%
0b1001 = 9
13%
0b1100 = 12
13%
0b0000 = 0
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
Проведи ревью кода и найди проблему (если она есть😉).
#include <mutex>
#include <thread>
#include <vector>
#include <iostream>
std::mutex mtx;
std::vector<int> data;
void producer() {
for (int i = 0; i < 100; ++i) {
std::lock_guard<std::mutex> lock(mtx);
data.push_back(i);
}
}
void consumer() {
while (true) {
std::lock_guard<std::mutex> lock(mtx);
if (data.empty()) {
// Ждём данные...
std::this_thread::sleep_for(
std::chrono::milliseconds(10));
continue;
}
std::cout << data.back() << "\n";
data.pop_back();
}
}
Вопрос: что не так с
consumer()? Почему lock_guard здесь — плохой выбор и как это исправить?📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
👍2🤔2