nter ruptO: } catch(Synchroniz

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

nter ruptO: } catch(Synchronization_Exception& e) { cerr « e.whatO « endl: } } ///:- Задачи помещаются в контейнер TQueue в функции main() и извлекаются из него в LiftOffRunner. Стоит отметить, что LiftOffRunner может игнорировать проблемы синхронизации, так как они решаются в TQueue. Чтобы решить проблему в программе ToastOMatic.cpp, можно организовать хранение тостов в контейнере TQueue между процессами. А для этого нам понадобятся «полноценные» объекты тостов, способные хранить и выводить свое состояние: //: Cl1:ToastOMaticMark11.cpp {RunByHand} // Решение проблем с использованием TQueue. //{L} ZThread #i nclude #include #i nclude #include #include “zthread/Thread.h” #include “zthread/Mutex.h” #include “zthread/Guard.h” #include “zthread/Condition.h” #include “zthread/ThreadedExecutor.h” #include “TQueue.h” using namespace ZThread: using namespace std: class Toast { enum Status { DRY. BUTTERED. JAMMED }: Status status; int id; public: ToastOnt idn) : status(DRY). id(idn) {} #ifdef _DMC_ // Ошибочно требует наличия конструктора по умолчанию Кооперация между програ


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