Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.28;
Скачать: CL | DM;

Вниз

Сдерживание потоков   Найти похожие ветки 

 
hinst   (2007-10-04 22:06) [0]

Здраствуйте;
Есть ли что-то вроде Delay для использования в потоках. Например, если я хочу, чтобы поток делал что-то каждые 5 сек, а между ними не жрал процессор. Пробовал таймер в поток засунуть, но он не работает что-то...
Спасибо за внимание;


 
DVM ©   (2007-10-04 22:08) [1]

sleep


 
hinst   (2007-10-04 22:12) [2]

а что это не работает в методе execute из потока self.sleep?


 
DVM ©   (2007-10-04 22:15) [3]


> а что это не работает в методе execute

из Execute это работает


> self.sleep

это что?


 
Anatoly Podgoretsky ©   (2007-10-04 22:22) [4]

> hinst  (04.10.2007 22:12:02)  [2]

Что бы это значило?


 
korneley ©   (2007-10-04 23:47) [5]


>... между ними не жрал процессор....
Но ведь кто-то будет, все равно, следить за временем, со всеми вытекающими...


 
DrPass ©   (2007-10-05 01:11) [6]


> Но ведь кто-то будет, все равно, следить за временем, со
> всеми вытекающими...

Как правило, есть еще масса потоков, которым есть чем занять процессор в это время


 
Anatoly Podgoretsky ©   (2007-10-05 01:44) [7]

> korneley  (04.10.2007 23:47:05)  [5]

Система будет следить, без всяких вытекающих.


 
Инс ©   (2007-10-05 10:32) [8]

Sleep указывает системе, что в течение данного периода поток нужно исключить из числа планируемых. При каждом прерывании от системного таймера, управление получает планировщик, вычитает из времени ожидания потока необходимое число и если время ожидания истекло - принимает решение включить поток в список планируемых и ставит его в очередь.


> Как правило, есть еще масса потоков, которым есть чем занять
> процессор в это время

Я бы даже сказал всегда. Даже если казалось бы, что таких потоков нет, то работает поток обнуления страниц, который имеет приоритет 0.


 
Однокамушкин   (2007-10-05 10:35) [9]


> korneley ©   (04.10.07 23:47) [5]
>
> >... между ними не жрал процессор....
> Но ведь кто-то будет, все равно, следить за временем, со
> всеми вытекающими...

Планировщик задач срабатывает при каждом прерывании от таймера, если в этот момент не выполняется более приоритетная задача, и отъедает очень мало времени... Каждый раз при этом планировщик задач решает, какой нити передать очередной квант времени, а нити, вызвавшей Sleep, он просто не передаётся до истечения таймаута, так что никакой дополнительной нагрузки на процессор нет



Страницы: 1 вся ветка

Текущий архив: 2007.10.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-1186651582
Alex_C
2007-08-09 13:26
2007.10.28
Отловить ошибку в TThread


2-1191493300
F@T@L_Err0r
2007-10-04 14:21
2007.10.28
изменение разрешения


10-1139503723
РАС
2006-02-09 19:48
2007.10.28
Визуальный Remote COM Object


2-1191311740
tmp
2007-10-02 11:55
2007.10.28
Неправильно удаляются записи из нетипизированного файла


3-1182402966
Xmen
2007-06-21 09:16
2007.10.28
TreeView и данные из таблицы