Относительный приоритет
Таблица 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().
Необходимо отметить, что служебные потоки ОС, производящие операции с мышью и клавиатурой, а также некоторые файловые операции, работают с приоритетом реального времени. Поэтому использование пользовательскими потоками таких приоритетов может повлиять на корректность функционирования ОС.