ода. Передача управления Если

Автор admin Среда, 24 июня 2009 11:32

ода. Передача управления Если вы считаете, что очередная итерация цикла в функции run() (большинство функций run() содержат продолжительные циклы) выполнила достаточный объем работы, подскажите планировщику потоков, что процессор можно временно уступить другому программному потоку. Эта рекомендация (а это именно рекомендация — нет гарантий, что ваша реализация к ней прислушается) принимает форму функции yield(). Следующая измененная версия примера с задачей LiftOff уступает управление после каждой итерации: Программные потоки 543 //: СИ: Yi el di ngTask. срр // Вызов yieldO определяет рекомендуемую // точку переключения потоков //{L} ZThread #include #include “zthread/Thread.h” #include “zthread/ThreadedExecutor.h” using namespace ZThread: using namespace std: class YieldingTask : public Runnable { int countDown; int id: public: YieldingTask(int ident = 0) : countDown(5). id(ident) {} -YieldingTaskО { cout « id « ” completed” « endl: } friend ostream& operator«(ostream& os. const YieldingTask& yt) { return os « “#” « yt.id « “: ” « yt.countDown: } void run() { while(true) { cout « *this « e


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