дача, сохраните результат, пол

Автор admin Пятница, 26 июня 2009 11:32

дача, сохраните результат, полученный при вызове Thread::interrupted(). В следующем примере показан типичный способ обработки обоих вариантов (с блокировкой и без) выхода из цикла в функции run() при установленном статусе прерывания: //: Cll:Interrupting3.cpp {RunByHand} // Основная идиома прерывания задач. //{L} ZThread #include #include “zthread/Thread.h” using namespace ZThread: using namespace std: const double PI = 3.14159265358979323846: const double E = 2.7182818284590452354; class NeedsCleanup { int id: public: NeedsCleanup(int ident) : id(ident) { cout « “NeedsCleanup ” « id « endl; } ~NeedsCieanup() { cout « “-NeedsCleanup ” « id « endl; } }: class Blocked3 : public Runnable { volatile double d: public: Blocked3() : d(0.0) {} void run() { try { while(IThread::interrupted()) { pointl: NeedsCleanup nl(l); cout « “Sleeping” « endl; Thread::sieep(1000); point2: NeedsCleanup n2(2): cout « “Calculating” « endl; // Продолжительная неблокирующая операция: for(int i = 1: i < 100000: i++) d = d + (PI + E) / (double)i: } cout « “Exiting via whileO test” « endl: } catch(Interrupted_Exception&)


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