TGViewer
Библиотека собеса по C++ | вопросы с собеседований Библиотека собеса по C++ | вопросы с собеседований @cpp_interview_lib · 4.61K subscribers
Post #1382 3.22K
‼️ Задача на выходные: lock_guard

Проведи ревью кода и найди проблему (если она есть😉).

#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++ разработчика

#междусобойчик
More from @cpp_interview_lib
  1. Sep 16, 2026🩹 Задача: const-итерация по Range #include <ranges> #include <vector> void process(const…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Aug 5, 2026Post #1456
  4. Aug 5, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
  5. Aug 5, 2026Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механик…
  6. Aug 4, 2026Post #1453
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →