и обращайтесь к специализирова

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

и обращайтесь к специализированной литературе по многопоточному программированию): //: СИ:FixedDiningPhi1osophers.cpp {RunByHand} // Обедающие философы без взаимной блокировки. //{L} ZThread #i nclude #i nclude “Di ni ngPhi1osophers. h” #include “zthread/ThreadedExecutor.h” using namespace ZThread; using namespace std; int main(int argc. char* argv[]) { srand(timeCO)); // Раскрутка генератора случайных чисел int ponder = argc > 1 ? atoi(argv[l]) : 5: cout « “Press to quit” « endl: enum { SZ = 5 }; try { CountedPtr d(new Display): ThreadedExecutor executor: Chopstick c[SZ]; for(int i = 0; i < SZ; i++) { if Ci < (SZ-D) executor.execute(new Philosopher(c[i]. c[i + 1]. d. i. ponder)); else executor.execute( new Philosopher(c[0]. c[i], d. i. ponder)): } cin.getO; executor.i nterrupt(): executor, wai tO; } catch(Synchronization_Exception& e) { cerr « e.whatO « endl: } } ///:- Позаботившись о том, чтобы последний философ брал и клал левую палочку раньше правой, мы устраняем взаимную блокировку. На уровне языка не существует средств борьбы с взаимными блокировками; вы сами должны позабо


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