Управление приоритетами и группы потоков в Java

Потоку можно назначить приоритет от 1 (константа MIN_PRIORITY) до 10 (MAX_PRIORITY) с помощью метода setPriority(int prior). Получить значение приоритета можно с помощью метода getPriority().

// пример # 3 : демонстрация приоритетов: PriorityRunner.java: PriorThread.java

package chapt14;

public class PriorThread extends Thread {

public PriorThread(String name){

super(name);

}

public void run(){

for (int i = 0; i < 71; i++){

System.out.println(getName() + " " + i);

try {

sleep(1);//попробовать sleep(0);

} catch (InterruptedException e) {

System.err.print("Error" + e);

}

}

}

}

package chapt14;

public class PriorityRunner {

public static void main(String[] args) {

PriorThread min = new PriorThread("Min");//1

PriorThread max = new PriorThread("Max");//10

PriorThread norm = new PriorThread("Norm");//5

min.setPriority(Thread.MIN_PRIORITY);

max.setPriority(Thread.MAX_PRIORITY);

norm.setPriority(Thread.NORM_PRIORITY);

min.start();

norm.start();

max.start();

}

}

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

Потоки объединяются в группы потоков. После создания потока нельзя изменить его принадлежность к группе.

ThreadGroup tg = new ThreadGroup("Группа потоков 1");

Thread t0 = new Thread(tg, "поток 0");

Все потоки, объединенные группой, имеют одинаковый приоритет. Чтобы определить, к какой группе относится поток, следует вызвать метод
getThreadGroup(). Если поток до включения в группу имел приоритет выше приоритета группы потоков, то после включения значение его приритета станет равным приоритету группы. Поток же со значением приоритета более низким, чем приоритет группы после включения в оную, значения своего приоритета не изменит.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100