История изменений
Исправление pon4ik, (текущая версия) :
Если тебе поупражнятся - напиши пул потоков который разбирает очередь задач при их наличии или просто спит пока задач нет (producer/consumer). Например, к каждой букве из стандартного входа приписать tid потока который её процессит и вывести на экран). Потом сходи в сорцы boost::asio::io_service и посмотри, вдруг оно чем-то похоже оказалось. Ну или если boost инопланетно, то в QEventLoop. Хинт - в этой задаче не нужен sleep, более того, реализация с использованием sleep будет ощутимо менее эффективна чем без него.
Или например, напиши какой нить серверочек который процессит вход на select/epoll. Как промежуточное упражнение - можно простой шелл написать.
Потом, отвлекись на конечные автоматы и сделай таки консольный калькулятор, который считает выражения вида «sin(42) * 32 / (22 - (1 + acos(2)))» и выводит корректные сообщения об ошибках в выражении.
Исходная версия pon4ik, :
Если тебе поупражнятся - напиши пул потоков который разбирает очередь задач при их наличии или просто спит пока задач нет (producer/consumer). Потом сходи в сорцы boost::asio::io_service и посмотри, вдруг оно чем-то похоже оказалось. Ну или если boost инопланетно, то в QEventLoop.
Или например, напиши какой нить серверочек который процессит вход на select/epoll. Как промежуточное упражнение - можно простой шелл написать.
Потом, отвлекись на конечные автоматы и сделай таки консольный калькулятор, который считает выражения вида «sin(42) * 32 / (22 - (1 + acos(2)))» и выводит корректные сообщения об ошибках в выражении.