Создание многопоточных приложений. Копытин А.В - 11 стр.

UptoLike

Составители: 

11
(низший), Below Normal (ниже нормального ), Normal (нормальный),
Above Normal (выше нормального ), Highest (высший) или Time Critical (крити -
ческий по времени ).
Класс TThread имеет открытое свойство Priority перечислимого типа
TThreadPriority. Для каждого относительного приоритета в этом типе суще-
ствует свой элемент перечисления:
type
TThreadPriority = (tpIdle, tpLowest, tpLower, tpNormal,
tpHigher, tpHighest, tpTimeCritical);
Приоритет любого объекта TThread можно получить или установить путем
простого чтения или записи его свойства Priority. С помощью следующей
строки кода присваивается высший приоритет экземпляру потомка класса
TThread, который носит имя MyThread:
MyThread.Priority := tpHighest;
Подобно классам приоритетов, каждому относительному приоритету соот-
ветствует определенное числовое значение. Разница лишь в том, что значение
относительного приоритета имеет знак , который при определении общего при -
оритета потока внутри системы влияет на результат суммирования класса при -
оритета процесса и относительного приоритета . Поэтому относительный при -
оритет иногда называется дельта-приоритетом. Общий приоритет потока мо -
жет выражаться значением от 1 до 31 (где число 1 означает самый низкий при -
оритет). В модуле Windows определены константы , представляющие знаковые
значения для каждого приоритета . В табл. 2 показано соответствие констант
API и элементов перечисления в типе TThreadPriority.
Таблица 2. Относительные приоритеты для потоков
Значение Признак Значение
tpIdle THREAD_PRIORITY_IDLE -15*
tpLowest THREAD_PRIORITYJLOWES T -2
tpBelowNormal THREAD_PRIORITY_BELOW_NORMAL -1
tpNormal THREAD_PRIORITY_NORMAL 0
tpAboveNormal THREAD_PRIORITY_ABOVE_NORMAL 1
tpHighest THREAD_PRIORITY_HIGHEST 2
tpTimeCritical THREAD_PRIORITY_TIME_CRITICAL 15*
Помеченные звездочкой (*) значения относительных приоритетов tpIdle и
tpTimeCritical, в отличие от других , на самом деле не добавляются к классу
приоритета для определения общего приоритета потока. Общий приоритет по -
тока, относительный приоритет которого равен tpIdle, независимо от класса
приоритета устанавливается равным 1. Исключением из этого правила является
класс Realtime, который, объединяясь с относительным приоритетом tpIdle,
имеет значение общего приоритета , равное 16. Общий приоритет любого пото -
ка с относительным приоритетом tpTimeCritical, независимо от его класса,
равен 15. Исключением из этого правила является класс приоритета Realtime,
                                          11
(низш ий), Below Normal (ниж е но рмально го ), Normal (но рмальны й),
Above Normal (вы ш е но рмально го ), Highest (вы сш ий) или Time Critical (крити-
ческий по времени).
  Класс TThread имеет о ткры тое сво йство Priority перечислимо го типа
TThreadPriority. Д л я каж до го о тно сительно го прио ритета в этом типе сущ е-
ствуетсво й элементперечисления:
type
  TThreadPriority       =     (tpIdle,   tpLowest,      tpLower,     tpNormal,
  tpHigher, tpHighest, tpTimeCritical);
  П рио ритетлю бо го о бъ екта TThread мо ж но по лучить или устано вить путем
про стого чтения или записи его сво йства Priority. С по мо щ ью следую щ ей
стро ки ко да присваивается вы сш ий прио ритет экземпляру по томка класса
TThread, ко то ры й но ситимя MyThread:
MyThread.Priority := tpHighest;
   П о до бно классам прио ритетов, каж до му о тно сительно му прио ритету со о т-
ветствуето пределенно е число во е значение. Разница лиш ь в том, что значение
о тно сительно го прио ритета имеетзнак, ко торы й при о пределении о бщ его при-
о ритетапо тока внутри системы влияетна результатсуммиро вания класса при-
о ритета про цесса и о тно сительно го прио ритета. П о этому о тно сительны й при-
о ритетино гда назы вается дельт а-пр иор ит ет ом . О бщ ий прио ритетпо тока мо -
ж етвы раж аться значением о т1 до 31 (где число 1 о значаетсамы й низкий при-
о ритет). В мо дуле Windows о пределены ко нстанты , представляю щ ие знако вы е
значения для каж до го прио ритета. В табл. 2 по казано со о тветствие ко нстант
API и элементовперечисления втипе TThreadPriority.
                          Таб ли ца2. О т н ос и т ельн ы е п ри ори т ет ы для п от оков
      Зн ачен и е                     П ри зн ак                           Зн ачен и е
tpIdle                THREAD_PRIORITY_IDLE                          -15*
tpLowest              THREAD_PRIORITYJLOWES T                       -2
tpBelowNormal         THREAD_PRIORITY_BELOW_NORMAL                  -1
tpNormal              THREAD_PRIORITY_NORMAL                        0
tpAboveNormal         THREAD_PRIORITY_ABOVE_NORMAL                  1
tpHighest             THREAD_PRIORITY_HIGHEST                       2
tpTimeCritical        THREAD_PRIORITY_TIME_CRITICAL                 15*


П о меченны е звездо чко й (*) значения о тно сительны х прио ритетов tpIdle и
tpTimeCritical, в о т  личие о тдругих , на само м деле не до бавляю тся к классу
прио ритета для о пределения о бщ его прио ритета по тока. О бщ ий прио ритетпо -
тока, о тно сительны й прио ритетко торо го равен tpIdle, независимо о ткласса
прио ритетаустанавливается равны м 1. И склю чением из этого правилаявляется
класс Realtime, ко торы й, о бъ единяясь с о тно сительны м прио ритетом tpIdle,
имеетзначение о бщ его прио ритета, равно е 16. О бщ ий прио ритетлю бо го по то-
ка с о тно сительны м прио ритетом tpTimeCritical, независимо о тего класса,
равен 15. И склю чением из этого правила является класс прио ритета Realtime,