Exemplo de uso de prioridades con fíos
Enunciado 1
Responde as preguntas sobre o seguinte código:
1 class DemoPrioridadGet extends Thread 2 { 3 public void run() 4 { 5 System.out.println("Dentro del método run"); 6 } 7 8 public static void main(String[]args) 9 { 10 DemoPrioridadGet t1 = new DemoPrioridadGet(); 11 DemoPrioridadGet t2 = new DemoPrioridadGet(); 12 DemoPrioridadGet t3 = new DemoPrioridadGet(); 13 14 System.out.println("Prioridad del hilo t1 : " + 15 t1.getPriority()); // Por defecto 5 16 System.out.println("Prioridad del hilo t2 : " + 17 t2.getPriority()); // Por defecto 5 18 System.out.println("Prioridad del hilo t3 : " + 19 t3.getPriority()); // Por defecto 5 20 21 t1.setPriority(2); 22 t2.setPriority(5); 23 t3.setPriority(8); 24 25 // t3.setPriority(21); arrojará IllegalArgumentException 26 System.out.println("Prioridad del hilo t1 : " + 27 t1.getPriority()); //2 28 System.out.println("Prioridad del hilo t2 : " + 29 t2.getPriority()); //5 30 System.out.println("Prioridad del hilo t3 : " + 31 t3.getPriority());//8 32 33 // Hilo Principal (Main thread) 34 System.out.print(Thread.currentThread().getName()+": "); 35 System.out.println("Prioridad del hilo Main : " 36 + Thread.currentThread().getPriority()); 37 38 // La prioridad del hilo principal se establece en 10 39 Thread.currentThread().setPriority(10); 40 System.out.println("Prioridad del hilo Main : " 41 + Thread.currentThread().getPriority()); 42 } 43 }
a) entre os fíos t1, t2 e t3... cal cres que terá maior probabilidade de execución? b) cal é a prioridade por defecto do fío main? c) cal é a prioridade por defecto dos fíos que herdan de main? d) Se dous fios teñen a mesma prioridade, cal pensas que se executará primeiro? e) Se lle asignamos a un fío prioridade 11... qué acontece?