Иллюстрированный самоучитель по программированию систем защиты

Система приоритетов

Таблица 3. Классы приоритетов.

Класс приоритета Базовый приоритет Примечание
REALTIME PRIORITY CLASS 24  
HIGH PRIORITY CLASS 13  
ABOVE NORMAL PRIORITY CLASS 10 Только WIN 2000
NORMAL PRIORITY CLASS 8  
BELOW NORMAL PRIORITY CLASS 6 Только WIN 2000
IDLE PRIORITY CLASS 4  

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

Таблица 4. Относительный приоритет.

Относительный приоритет  
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_ PRJORITY_NORMAL. Соответствующие значения базового приоритета в зависимости от класса приоритета указаны в таблице 3.

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

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.