Философия Java


Управление группами процессов


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

//: c14:ThreadGroup1.java

// How thread groups control priorities

// of the threads inside them.

public class ThreadGroup1 { public static void main(String[] args) { // Get the system thread & print its Info:

ThreadGroup sys = Thread.currentThread().getThreadGroup(); sys.list(); // (1)

// Reduce the system thread group priority:

sys.setMaxPriority(Thread.MAX_PRIORITY - 1); // Increase the main thread priority:

Thread curr = Thread.currentThread(); curr.setPriority(curr.getPriority() + 1); sys.list(); // (2)

// Attempt to set a new group to the max:

ThreadGroup g1 = new ThreadGroup("g1"); g1.setMaxPriority(Thread.MAX_PRIORITY); // Attempt to set a new thread to the max:

Thread t = new Thread(g1, "A"); t.setPriority(Thread.MAX_PRIORITY); g1.list(); // (3)

// Reduce g1's max priority, then attempt

// to increase it:

g1.setMaxPriority(Thread.MAX_PRIORITY - 2); g1.setMaxPriority(Thread.MAX_PRIORITY); g1.list(); // (4)

// Attempt to set a new thread to the max:

t = new Thread(g1, "B"); t.setPriority(Thread.MAX_PRIORITY); g1.list(); // (5)

// Lower the max priority below the default

// thread priority:

g1.setMaxPriority(Thread.MIN_PRIORITY + 2); // Look at a new thread's priority before

// and after changing it:

t = new Thread(g1, "C"); g1.list(); // (6)

t.setPriority(t.getPriority() -1); g1.list(); // (7)

// Make g2 a child Threadgroup of g1 and

// try to increase its priority:

ThreadGroup g2 = new ThreadGroup(g1, "g2"); g2.list(); // (8)

g2.setMaxPriority(Thread.MAX_PRIORITY); g2.list(); // (9)

// Add a bunch of new threads to g2:




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