inishingQueue. cradle)); assem
Автор admin Среда, 1 июля 2009 11:32
inishingQueue. cradle)); assemblyLi ne.execute(new Reporter(fi ni shi ngQueue)); // Запускаем систему, начиная производство рам: assemblyLi ne.execute(new Chassi sBui1der(chassisQueue)): cin.getO; assemblyLine.interrupt): } catch(Synchronization_Exception& e) { cerr « e.whatO « endl: } } catch(Interrupted_Exception&) { /* Exit */ } cout « “DriveTrainRobot off” « endl: } } ///:- 586 Глава 11 • Многопоточное программирование В классе Саг имеет место одно упрощение: предполагается, что операции bool являются атомарными. Как уже отмечалось, это предположение достаточно безопасно, и все же оно должно быть тщательно продумано. Каждый объект Саг начинает свое существование в виде простой рамы. Несколько роботов прикрепляют к нему разные части, вызывая соответствующие функции add после завершения своей работы. Класс ChassisBuilder просто создает новый объект Саг каждую секунду и помещает его в очередь chassisQueue. Объект Director управляет процессом сборки: он извлекает очередной объект Саг из chassisQueue, помещает его на монтажный стенд (Cradle), приказывает всем роботам начать работу функцией startWork()
Комментарии закрыты.
Последние комментарии