роверкой условия внутри програ

Автор admin Суббота, 27 июня 2009 11:32

роверкой условия внутри программного потока было бы нежелательно; подобное активное ожидание обычно приводит лишь к напрасной трате процессорного времени. Поэтому функция wait() приостанавливает программный поток до изменения внешнего условия, а при вызове signalQ или broadcast() (означающем, что в программе произошло нечто важное) программный поток «просыпается» и проверяет изменения. Таким образом, функция wait() обеспечивает механизм синхронизации действий между программными потоками. Кооперация между программными потоками 571 Рассмотрим простой пример. Программа WaxOMatic.cpp содержит два процесса: первый (WaxOn) наносит на автомобиль защитное покрытие, а второй (WaxOff) его полирует. Второй процесс не может начать свою работу до завершения первого, а первый процесс должен дождаться завершения второго, чтобы нанести следующий слой покрытия. Оба процесса используют объект Саг, содержащий объект Condition, который требуется для приостановки потока внутри waitForWaxing() и waitForBuffing(): //: СП:WaxOMatic.cpp {RunByHand} // Простейшая кооперация программных потоков. //{L} ZThread #include


Комментарии закрыты.