Относительный приоритет

Таблица 6

Классы приоритетов

Таблица 5

 

Класс приоритета Чтимый приоритет Примечание
REALTIME_PRIORITY_CLASS  
HIGH_PRIORITY_CLASS  
ABOVE_NORMAL_PRIORITY_CLASS Только Win 2000
NORMAL_PRIORITY_CLASS  
BELOW_NORMAL_PRIORITY_CLASS Только Win 2000
IDLU_PRIORITY_CLASS  

 

Поток может иметь одно из 7 значений (табл. 5): 5 значений, относительных внутри каждого класса приоритетов, и 2 значения, относительных внутри диапазонов динамического приоритета и приоритетов реального времени.

 

Относительный приоритет  
THREAD_PRIORITY_TIME_CRITICAL 15(31)
THREAD_PRIORITY_HIGHEST +2
THREAD_PRIORITY_ABOVE_NORMAL +1
THREAD_PRIORITY_NORMAL +0
THREAD_PRIORITY_BELOW_NORMAL -1
THREAD_PRIORITY_LOWEST -2
THREAD_PRIORITY_IDLE 1(16)

 

Два значения, обозначающие минимальное и максимальное значение приоритета внутри диапазона динамических приоритетов и приоритетов реального времени - это THREAD_PRIORITY_IDLE и THREAD_PRIORITY_ TIME_CRITICAL. Для диапазона динамических приоритетов они обозначают базовые приоритеты 1 и 15, а для диапазона приоритетов реального времени - 16 и 31 соответственно.

Любой поток всегда создается с относительным приоритетом THREAD PRIORITY_NORMAL. Соответствующие значения базового приоритета в зависимости от класса приоритета указаны в таблице 6.

Относительный приоритет потока может быть получен/изменен с помощью WIN32 - функций GetThreadPriority()/SetThreadPriority().

Необходимо отметить, что служебные потоки ОС, производящие операции с мышью и клавиатурой, а также некоторые файловые операции, работают с приоритетом реального времени. Поэтому использование пользовательскими потоками таких приоритетов может повлиять на корректность функционирования ОС.