v; public: Accessor(CountedPt

Автор admin Четверг, 25 июня 2009 11:32

v; public: Accessor(CountedPtr& tl. int idn) : id(idn). tlv(tl) {} void run() { while(!tlv->isCanceled()) { tlv->increment(); cout « *this « endl: } } friend ostreamS operator«(ostream& os, AccessorS a) { return os « “#” « a.id « “: ” « a.tlv->get(): } }: int mainO { cout « “Press to quit” « endl: try { CountedPtr tlv(new ThreadLocalVariables); const int SZ = 5: ThreadedExecutor executor; for(int i = 0: i < SZ; i++) executor.execute(new Accessor(tlv. i)); cin.get(): tlv->cancel(): // Завершение всех задач Accessor } catch(Synchromzation_Exception& e) { cerr « e.whatO « endl; } } ///:- При создании объекта ThreadLocal посредством специализации шаблона для обращения к содержимому объекта могут использоваться только функции get() и set(). Функция get() возвращает копию объекта, связанного с программным потоком, а функция set() подставляет свой аргумент в объект, ассоциированный с данным потоком, и возвращает прежний объект. Примеры применения этих функций встречаются в функциях increment() и get() класса ThreadLocalVariables. Так как объект tlv совмест


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