Desarrollo de Funciones en el Sistema Informático
                                                Curso 2009/2010




Concurrencia en Java
Presentación en diapositivas (PRE11)
Desarrollo de Funciones en el Sistema Informático
                                                           Curso 2009/2010



  Hilos de ejecución (threads)
                   Procesador (CPU)
Proceso 1 (P1)                  Proceso 2 (P2)
Hilo 1 (H1) Hilo 2 (H2)                      Hilo 1 (H1)




                     Memoria (RAM)
Memoria reservada a P1         Memoria reservada a P2
Desarrollo de Funciones en el Sistema Informático
                                                                                Curso 2009/2010



          Creación de hilos de ejecución
2 pasos:
 1 Crear una nueva clase que hereda de java.lang.Thread.
  class ProbarThread                           1    class AThread extends Thread
  {                                                 {
     public static void main (String args[])
     {
                                                            public void run()   2
                                                            {
       Athread a = new Athread ();                                  int i;
       Bthread b = new Bthread();                                   for (i=1;i<=10;i++)
                                                                    System.out.print(“ A”+i);
          a.start();                                        }
          b.start();                                }
      }
  }                                            1    class BThread extends Thread
                                                    {
                                                            public void run()   2
                                                            {
                                                                    int i;
                                                                    for (i=1;i<=10;i++)
                                                                    System.out.print(“ B”+i);
                                                            }
                                                    }

 2 Sobrecargar el método run() de dicha clase.
Desarrollo de Funciones en el Sistema Informático
                                                                   Curso 2009/2010



  Ciclo de vida de los hilos de ejecución
Representación gráfica:
                             En ejecución
                                                      sleep()
                                      yield()         suspend()
                                                      wait()
                   start()
       Nuevo                                                      Bloqueado
                              Preparado               resume()
                                                      notify()




                                     run() finaliza




                               Muerto
Nuevo (new): se acaba de crear pero todavía no está iniciado.
En ejecución: se está ejecutando.
Preparado: está en disposición de ejecutarse.
Bloqueado: está bloqueado.
Desarrollo de Funciones en el Sistema Informático
                                                                                                                          Curso 2009/2010




                                             Concurrencia en Java
                                          Presentación en diapositivas (PRE11)




                   Esta obra de Cristian Jorge Garcia Marcos está bajo una licencia Reconocimiento-Compartir bajo la misma licencia 3.0 España de Creative Commons.
                   Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/3.0/es/ o envíe una carta a Creative Commons, 171
                   SecondStreet, Suite 300, San Francisco, California 94105, USA



Basado en el documento:
López, J. A. P., Xirgo, L. R. (2008, February 18). Introducción al desarrollo de software. Retrieved February 25, 2010, from UOCOpenCourseWare Web site: http://ocw.uoc.edu/informatica-
tecnologia-y-multimedia/introduccion-al-desarrollo-de-software, publicado bajo una licencia GNU Free Document License.

Concurrencia en Java

  • 1.
    Desarrollo de Funcionesen el Sistema Informático Curso 2009/2010 Concurrencia en Java Presentación en diapositivas (PRE11)
  • 2.
    Desarrollo de Funcionesen el Sistema Informático Curso 2009/2010 Hilos de ejecución (threads) Procesador (CPU) Proceso 1 (P1) Proceso 2 (P2) Hilo 1 (H1) Hilo 2 (H2) Hilo 1 (H1) Memoria (RAM) Memoria reservada a P1 Memoria reservada a P2
  • 3.
    Desarrollo de Funcionesen el Sistema Informático Curso 2009/2010 Creación de hilos de ejecución 2 pasos: 1 Crear una nueva clase que hereda de java.lang.Thread. class ProbarThread 1 class AThread extends Thread { { public static void main (String args[]) { public void run() 2 { Athread a = new Athread (); int i; Bthread b = new Bthread(); for (i=1;i<=10;i++) System.out.print(“ A”+i); a.start(); } b.start(); } } } 1 class BThread extends Thread { public void run() 2 { int i; for (i=1;i<=10;i++) System.out.print(“ B”+i); } } 2 Sobrecargar el método run() de dicha clase.
  • 4.
    Desarrollo de Funcionesen el Sistema Informático Curso 2009/2010 Ciclo de vida de los hilos de ejecución Representación gráfica: En ejecución sleep() yield() suspend() wait() start() Nuevo Bloqueado Preparado resume() notify() run() finaliza Muerto Nuevo (new): se acaba de crear pero todavía no está iniciado. En ejecución: se está ejecutando. Preparado: está en disposición de ejecutarse. Bloqueado: está bloqueado.
  • 5.
    Desarrollo de Funcionesen el Sistema Informático Curso 2009/2010 Concurrencia en Java Presentación en diapositivas (PRE11) Esta obra de Cristian Jorge Garcia Marcos está bajo una licencia Reconocimiento-Compartir bajo la misma licencia 3.0 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/3.0/es/ o envíe una carta a Creative Commons, 171 SecondStreet, Suite 300, San Francisco, California 94105, USA Basado en el documento: López, J. A. P., Xirgo, L. R. (2008, February 18). Introducción al desarrollo de software. Retrieved February 25, 2010, from UOCOpenCourseWare Web site: http://ocw.uoc.edu/informatica- tecnologia-y-multimedia/introduccion-al-desarrollo-de-software, publicado bajo una licencia GNU Free Document License.