#include #include #include #include #include std::mutex mtx; std::condition_variable cv; std::queue wiadomosci; thread_local std::string wiadomosc; void producer() { while (true) { std::cin >> wiadomosc; { std::unique_lock lock(mtx); wiadomosci.push(wiadomosc); cv.notify_one(); } } } void consumer() { while (true) { { std::unique_lock lock(mtx); cv.wait(lock, [] { return !wiadomosci.empty(); }); wiadomosc = wiadomosci.front(); wiadomosci.pop(); } std::cout << wiadomosc << std::endl; } } int main() { std::thread t(consumer); producer(); }