#include #include #include #include #include std::mutex mtx; std::condition_variable cv; std::list slowa; thread_local std::string slowo; void consumer(){ while(true){ { std::unique_lock lock(mtx); cv.wait(lock, []{return slowa.size()!=0;}); slowo = slowa.front(); slowa.pop_front(); } std::cout << slowo << std::endl; } } int main(){ std::thread t(consumer); while(true) { std::cin >> slowo; { std::unique_lock lock(mtx); slowa.push_back(slowo); cv.notify_one(); } } }