кты Entrance переходят в состо
Автор admin
Пятница, 26 июня 2009 11:32
кты Entrance переходят в состояние waitingforCancel; в этом состоянии отсчет не производится, но объекты продолжают существовать. Это очень важно, поскольку функция main() должна обеспечить безопасный перебор объектов в векторе vector. Обратите внимание: поскольку существует небольшая вероятность того, что перебор закончится раньше, чем Entrance завершит подсчет и перейдет в состояние waitingForCancel, функция getValue() в цикле вызывает функцию sleep() до тех пор, пока объект не перейдет в состояние waitingForCancel (это одна из форм так называемого активного ожидания, которое считается нежелательным; более предпочтительный подход с функцией wait() приведен далее). После того как main() завершит перебор вектора vector, объекту count посылается сообщение cancel(), а все объекты Entrance снова ожидают изменения состояния. В этот момент они выводят сообщение о завершении и выходят из run(), что приводит к уничтожению всех задач механизмом многопоточности. Запустите программу, и вы увидите, как по мере прохождения посетителей обновляются счетчики каждого входа, а также счетчик общего
Комментарии закрыты.
Последние комментарии