Planificacion de Hilos PSP

1

Que significa planificación ?

Un tema fundamental dentro de la programación multihilo es la planificación de los hilos. Este concepto se refiere

que hilo toma el control del procesador y cuando. Obviamente en el caso de que un hilo este bloqueado esperando una

operación  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?

Aqui en este Proyecto veremos tambien el Ejemplo de la cena de los Filosofos para poder entenderlo mejor .

 

1

 

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.

Ejemplo :

                        public class UnHilo extends Thread {

                         public UnHilo(String nombreHilo) {

                         super(nombreHilo);

                         }

                       public void run() {

                           System.out.println(getName());

                       }

      }

 

Código de UnHilo.java

public class TestUnHilo () {

            public static void main (String[] args) {

                 UnHilo hiloUno = new UnHilo(“HiloUno”);

                UnHilo hiloDos = new UnHilo(“HiloDos”);

                hiloUno.start();

                hiloDos.start();

               try {

                 hiloUno.join();

                hiloDos.join();

             } catch (InterruptedException ie) {

        }

             System.out.println(“El programa ha finalizado”);

     }

}

Formas de crear Hilos

  • Por herencia
  • Por delegación

Creación de hilos por herencia:

1

Control de hilos

Clase Thread: proporciona métodos de control
Algunos de los más importantes:

1

1

 

Dos tipos de hilos en Java:

  •   Hilos de usuario (por defecto)
  •   Hilos demonio

La aplicación Java termina cuando terminan todos los hilos de usuario
Utilidad hilos demonio: actividades en segundo plano
El carácter de demonio de un hilo se le ha de asignar antes de iniciarlo (configuración)

1

 

 

 

.

La cena de los filosofos es un problema típico en programación de

sincronización de procesos.

El enunciado es el siguiente:

Cinco filósofos alrededor de una mesa pasan su vida comiendo o pensando. Cada filósofo tiene un plato de

arroz y un palillo a la izquierda de su plato. Cuando un filósofo quiere comer, cogerá los dos palillos de cada

lado del plato y comerá. 

El problema es desarrollar el algoritmo que permita comer a los filósofos. Este algoritmo debe satisfacer la

exclusión mutua (dos filósofos no pueden emplear el mismo palillo a la vez), además de evitar el interbloqueo

y la inanicion

 

1

Vamos a resolverlo en Java, empleando la clase Semaphore del paquete java.util.concurrent.

Código de la clase Main

 

Código de la clase Filosofo

 

 

http://labojava.blogspot.com.es/2012/10/planificacion-de-threads-prioridades.html

http://es.slideshare.net/JGuillermoCC/hilos-en-javatodo

http://es.wikipedia.org/wiki/Problema_de_la_cena_de_los_fil%C3%B3sofos

Anuncios

Publicado el 7 octubre, 2014 en Programacion de Servicios. Añade a favoritos el enlace permanente. Comentarios desactivados en Planificacion de Hilos PSP.

Los comentarios están cerrados.

A %d blogueros les gusta esto: