![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Потоки
cok © (2002-03-07 20:49:00)Привет All!
Кто-нибудь знает, через какое время (примерно) поток получает управление вновь?
paul_shmakov (2002-03-15 12:25:00) [1]около 20 мс (это т.н. time slice) планировщик дает потоку на выполнение, потом переключает контекст на следующий поток.
такая ситуация имеет место только если все потоки имеют одинаковый приоритет. в реальной жизни все работают с разными.
потоки с более высоким приоритетом вытесняют более низких. при этом даже тот time slice, который дан вашему потоку, может быть обрезан где-нибудь на половине, если вдруг потоку с более высоким приоритетом захотелось выполниться.
ну а если несколько потоков с высокими приоритетами взялись дружно за работу, то ваш поток заснет надолго.
как верно заметил VuDZ, в win2k есть глюк: функция SetThreadPriority обнуляет time slice потока. т.е. если вытеснять вас некому (у вас и так самый высокий приоритет) и вы начнете выполнять цикл
while true do
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
то ваш time slice будет длиться очень долго :) (кстати, здесь необязательно было использовать константу THREAD_PRIORITY_TIME_CRITICAL - можно и THREAD_PRIORITY_BELOW_NORMAL, например).
но это так, к теме не относится. а по теме можно сказать, что никаких гарантий ос windows вам на этот счет дать не может. когда позволит, тогда и будете выполняться :)
VuDZ (2002-03-08 18:43:00) [2]нет, больше.
но если мне не изменяет память, то этот парамерт для win2k можно настроить в реестре.
да, и ещё.
SetThreadPriprity() сбрасывает сётчик прошедшего времени для процесса, т.е. если достаточно часто вызывать её, то другие потоки не получат управление. Но это тольо для win2k.
cok (2002-03-08 14:57:00) [3]Меня интересует квант времени это меньше 1 мс или нет?
VuDZ (2002-03-08 10:19:00) [4]Есть такое понятие - квант времени. Зависит от типа операционки - win9x/winNT для последнего случая - от настроек быстродействия - для сервисов или приложений. Может колебаться в зависимости от загруженности процессора(ов).
Что конкретно тебя интерисует?