viernes, 19 de octubre de 2012

Planificación de Threads (Prioridades)


Que significa planificación
Un tema fundamental dentro de la programación multihilo es la planificación de los hilos. Este concepto se refiere a la política a seguir de que hilo toma el control del procesador y cuando. Obviamente en el caso de que un hilo este bloqueado esperando una operación de I/O este hilo debería dejar el control del procesador y que este control lo tomara otro hilo que si pudiera hacer uso del tiempo de CPU. ¿Pero que pasa si hay más de un hilo esperando? ¿A cual de ellos le otorgamos el control del procesador?

Prioridades
Para determinar que hilo debe ejecutarse primero, cada hilo posee su propia prioridad: un hilo de prioridad mas alta que se encuentre en el estado LISTO entrara antes en el estado EN EJECUCION que otro de menor prioridad.

El método setPriority()
Para establecer la prioridad de un thread se utiliza el método setPriority() de la siguiente manera:


       h1.setPriority(10);
       h1.setPriority(1);

También existen constantes definidas para la asignación de prioridades estas son:
      
       MIN_PRIORITY = 1
       NORM_PRIORITY = 5
       MAX_PRIORITY = 10

Las cuales se pueden utilizar de la siguiente manera:

       h1.setPriority(Thread. MAX_PRIORITY); //Le concede la mayor prioridad
       h1.setPriority(Thread. MIN_PRIORITY); //Le concede la menor prioridad

1 comentario: