Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сдерживание потоков [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо