![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сдерживание потоков [D7, XP]
hinst © (2007-10-04 22:06:00)Здраствуйте;
Есть ли что-то вроде Delay для использования в потоках. Например, если я хочу, чтобы поток делал что-то каждые 5 сек, а между ними не жрал процессор. Пробовал таймер в поток засунуть, но он не работает что-то...
Спасибо за внимание;
Однокамушкин (2007-10-05 10:35:00) [1]
> korneley © (04.10.07 23:47) [5]
>
> >... между ними не жрал процессор....
> Но ведь кто-то будет, все равно, следить за временем, со
> всеми вытекающими...
Планировщик задач срабатывает при каждом прерывании от таймера, если в этот момент не выполняется более приоритетная задача, и отъедает очень мало времени... Каждый раз при этом планировщик задач решает, какой нити передать очередной квант времени, а нити, вызвавшей Sleep, он просто не передаётся до истечения таймаута, так что никакой дополнительной нагрузки на процессор нет
Инс (2007-10-05 10:32:00) [2]Sleep указывает системе, что в течение данного периода поток нужно исключить из числа планируемых. При каждом прерывании от системного таймера, управление получает планировщик, вычитает из времени ожидания потока необходимое число и если время ожидания истекло - принимает решение включить поток в список планируемых и ставит его в очередь.
> Как правило, есть еще масса потоков, которым есть чем занять
> процессор в это время
Я бы даже сказал всегда. Даже если казалось бы, что таких потоков нет, то работает поток обнуления страниц, который имеет приоритет 0.
Anatoly Podgoretsky (2007-10-05 01:44:00) [3]> korneley (04.10.2007 23:47:05) [5]
Система будет следить, без всяких вытекающих.
DrPass (2007-10-05 01:11:00) [4]
> Но ведь кто-то будет, все равно, следить за временем, со
> всеми вытекающими...
Как правило, есть еще масса потоков, которым есть чем занять процессор в это время
korneley (2007-10-04 23:47:00) [5]
>... между ними не жрал процессор....
Но ведь кто-то будет, все равно, следить за временем, со всеми вытекающими...
Anatoly Podgoretsky (2007-10-04 22:22:00) [6]> hinst (04.10.2007 22:12:02) [2]
Что бы это значило?
DVM (2007-10-04 22:15:00) [7]
> а что это не работает в методе execute
из Execute это работает
> self.sleep
это что?
hinst (2007-10-04 22:12:00) [8]а что это не работает в методе execute из потока self.sleep?
DVM (2007-10-04 22:08:00) [9]sleep