Таблица 4.1. Базовые приоритеты потоков
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. Приоритеты потоков |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Теперь перейдем к приоритетам потоков, задание которых в Windows довольно запутанное. Приоритет потока, который учитывается системой при выделении потокам процессорного времени, называется базовым (base) или основным приоритетом потока. Всего существует 32 базовых приоритета — от 0 до 31. Для каждого базового приоритета существует очередь потоков. При диспетчеризации потоков квант процессорного времени выделяется потоку, который стоит первым в очереди с наивысшим базовым приоритетом. Базовый приоритет потока определяется как сумма приоритета процесса и уровня приоритета потока, который может принимать одно из следующих значений, которые разобьем на две группы. Первая состоит из: Вторая: Значения уровня приоритета потока из первой группы в сумме с приоритетом процесса, в контексте которого этот поток выполняется, уменьшают, оставляют неизменным или увеличивают значение базового приоритета потока соответственно на величину —2, —1,0, 1,2. Уровень приоритета потока thread priority idle устанавливает базовый приоритет потока равным 16, если приоритет процесса, в контексте которого выполняется поток, равен real_time_priority_class, и 1 — в остальных случаях. Уровень приоритета потока threadprioritytimecritical устанавливает базовый приоритет потока равным 31, если приоритет процесса, в контексте которого выполняется поток, равен real_time_priority_class, и 15 — в остальных случаях. Таблица 4.1. Базовые приоритеты потоков |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В этой таблице по столбцам указаны приоритеты классов процессов, а по строкам — уровни приоритетов потоков. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||