Философия Java


Управление группами процессов - часть 4


Приоритет нового процесса не может быть изменен на большее, чем макимальное значение приорита группы.

Приоритет процесса по умолчанию для данной программы равен шести; это приоритет с которым будет создан новый процесс и с которым он останется, если не пытаться как-то его изменить. В примере 6 будем уменьшать максимальный приоритет группы до меньшего значения, чем приоритет процесса по умолчанию, чтобы увидеть, что произойдет в этих условиях:

(6) ThreadGroup[name=g1,maxpri=3]       Thread[A,9,g1]       Thread[B,8,g1]       Thread[C,6,g1]

Хотя максимальный приоритет для группы и равен трем, новый процесс все равно создается с приоритетом по умолчанию, то есть шесть. Таким образом, максимальное значение приоритета группы процессов не влияет на приоритет по умолчанию. (Фактически не существует способа установить другое значение проритета по умолчанию для новых процессов.)

После изменения приоритета, попытка уменьшить его на единицу приводит к следующему:

(7) ThreadGroup[name=g1,maxpri=3]       Thread[A,9,g1]       Thread[B,8,g1]       Thread[C,3,g1]

Только когда вы пытаетесь изменить значение приоритета принудительно изменяется максимальное значение приоритета группы процессов.

Аналогичный эксперимент проводился в (8) и (9), в котором создается новая дочерняя группа процессов g2 от g1, а затем максимальное значение ее приоритета изменяется. И видно, что невозможно установить максимальное значение приоритета для g2 выше, чем у g1:

(8) ThreadGroup[name=g2,maxpri=3] (9) ThreadGroup[name=g2,maxpri=3]

Также видно, что в момент создания, g2 автоматически устанавливает приоритет в значение, равное максимальному приоритету группы g1.

После всех этих экспериментов выводиться полный список всех групп и процессов:

(10)ThreadGroup[name=system,maxpri=9]       Thread[main,6,system]       ThreadGroup[name=g1,maxpri=3]         Thread[A,9,g1]         Thread[B,8,g1]         Thread[C,3,g1]         ThreadGroup[name=g2,maxpri=3]           Thread[0,6,g2]           Thread[1,6,g2]           Thread[2,6,g2]           Thread[3,6,g2]           Thread[4,6,g2]




Начало  Назад  Вперед



Книжный магазин