Главная arrow С++ (часть 3) arrow Приоритеты потоков

Приоритеты потоков

В любом классе приоритета индивидуальный приоритет потока определяет, сколько времени получит поток в своем процессе. Когда поток создается впервые, он получает нормальный приоритет, но вы можете изменить его — даже во время выполнения потока.
Текущее значение приоритета потока можно узнать, вызвав функцию GetThreadPriorityO. Изменить это значение можно с помощью функции setThreadPriority (). Далее показаны прототипы этих функций:
BOOL SetThreadPriority(HANDLE hThread, int priority); BOOL GetThreadPriority(HANDLE hThread);
g обеих функциях параметр hThread содержит дескриптор потока. В функции SetThreadPriority о параметр priority задает новое значение приоритета потока. Если возникает ошибка, функция SetThreadPriority о возвращает О, в противном случае — ненулевое значение. Функция GetThreadPriorityo возвращает текущий приоритет потока. Возможные значения приоритета приведены в табл. 3.1 в порядке следования от наивысшего к низшему.
Таблица 3.1. Стандартные значения приоритета потока Именованная константа Числовое значение
THREAD_PRIORITY_TT.ME_CRITT.CAL 15
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 -15
Эти значения служат инкрементами или декрементами для класса приоритета процесса. Комбинируя приоритет класса и приоритет потока, операционная система Windows предлагает 31 возможное значение для программ-приложений.
ФУНКЦИЯ GetThreadPriorityO  ВОЗВращавТ THREAD_PRIORITY_ERROR_RETURN,
если возникает ошибка.
В большинстве случаев, если у потока нормальный класс приоритета, можно свободно экспериментировать, изменяя приоритет потока и не опасаясь катастрофических последствий для общей производительности системы. Разрабатываемая в следующем разделе панель управления (control panel) позволит вам изменять приоритет потока в процессе (но без изменения класса приоритета процесса).
 
Помощь юриста если вы попали в дтп Автоэкспертиза Трасология.