SlideShare una empresa de Scribd logo
1 de 18
10. Hilos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hilos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Definición y Ejecución de un hilo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Problema con la herencia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Finalización de un Hilo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Ciclo de vida ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Método sleep ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Sincronización ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Cuestiones avanzadas y Conclusiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Ejemplo - Temporizador import  java.util.*; public   class  Temporizador  extends  Thread { private   int  espera; private   List  despertables =  new  ArrayList(); public  Temporizador ( int   espera ) {  this .espera = espera; }  public   void  addDespertable ( Despertable  d) {  despertables. add (d); }  public   void  removeDespertable ( Despertable  d) {  despertables. remove (d); } El lenguaje de programación Java
Ejemplo - Temporizador public   void   run  () {  while  (! interrupted ()) {  try  { Thread.sleep (espera); }  catch  ( InterruptedException  e) { break ; }  Iterator it = despertables.iterator(); while  (it.hasNext()) { Despertable d = ( Despertable )it.next(); d.despierta(); }  } } } El lenguaje de programación Java
Ejemplo - Temporizador public   interface  Despertable { void  despierta();  } public   class  Perezoso  implements  Despertable  { private  String nombre; public  Perezoso (String nombre) {  this .nombre = nombre;  } public   void  despierta () { System.out.println(nombre +  ": he sido despertado" ); } } El lenguaje de programación Java
Ejemplo - Programa public   class  Programa {  public   static   void  main (String[] args) { Temporizador temp =  new  Temporizador ( 1000 ); temp.addDespertable( new   Perezoso ( "1" )); temp.addDespertable( new   Perezoso ( "2" ));  temp. start (); //Esperamos 5 sg para interrumpir la alarma try  { Thread.sleep( 5000 ); }  catch  (InterruptedException e) {} temp. interrupt (); // Espero a que termine while  (temp. isAlive ()); }  } El lenguaje de programación Java
Ejemplo- salida del programa El lenguaje de programación Java perezoso.despierta perezoso.despierta perezoso.despierta perezoso.despierta temp.interrupt
Reflexión en Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
clase Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
clases Field y Method ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java
Ejemplo: invocar método de clase ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El lenguaje de programación Java

Más contenido relacionado

La actualidad más candente

Thread group demonios- parte1
Thread group demonios- parte1Thread group demonios- parte1
Thread group demonios- parte1
Abrahan Reyes
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
bowelmx
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOS
Mario Martinez
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
innovalabcun
 
Threads en java
Threads en javaThreads en java
Threads en java
jent46
 

La actualidad más candente (19)

2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Thread group demonios- parte1
Thread group demonios- parte1Thread group demonios- parte1
Thread group demonios- parte1
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Chap 15cpin
Chap 15cpinChap 15cpin
Chap 15cpin
 
Chap 15apin
Chap 15apinChap 15apin
Chap 15apin
 
Chap 15fpin
Chap 15fpinChap 15fpin
Chap 15fpin
 
Chap 15bpin
Chap 15bpinChap 15bpin
Chap 15bpin
 
Programación multihebra en java
Programación multihebra en javaProgramación multihebra en java
Programación multihebra en java
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOS
 
Networking
NetworkingNetworking
Networking
 
Lps 17 hilos
Lps 17 hilosLps 17 hilos
Lps 17 hilos
 
Chap 15dpin
Chap 15dpinChap 15dpin
Chap 15dpin
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Thread 01
Thread 01Thread 01
Thread 01
 
Thread 02
Thread 02Thread 02
Thread 02
 
Multitarea
MultitareaMultitarea
Multitarea
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Threads en java
Threads en javaThreads en java
Threads en java
 

Similar a Programando en java

Guia1 programacion de-procesos_concurrentes-hilos
Guia1 programacion de-procesos_concurrentes-hilosGuia1 programacion de-procesos_concurrentes-hilos
Guia1 programacion de-procesos_concurrentes-hilos
haroldhicc
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
Robert Wolf
 
instrumentos de trabajo
instrumentos de trabajoinstrumentos de trabajo
instrumentos de trabajo
jorpical
 
DefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJava
DanielCorzo12
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
Juan Mancilla
 

Similar a Programando en java (20)

hilosJava.pptx
hilosJava.pptxhilosJava.pptx
hilosJava.pptx
 
PCJ Sesión 9: Threads
PCJ Sesión 9: ThreadsPCJ Sesión 9: Threads
PCJ Sesión 9: Threads
 
Hilos
HilosHilos
Hilos
 
Guia1 programacion de-procesos_concurrentes-hilos
Guia1 programacion de-procesos_concurrentes-hilosGuia1 programacion de-procesos_concurrentes-hilos
Guia1 programacion de-procesos_concurrentes-hilos
 
Thread
ThreadThread
Thread
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
Hilos en java
Hilos en javaHilos en java
Hilos en java
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
Threads.pdf
Threads.pdfThreads.pdf
Threads.pdf
 
instrumentos de trabajo
instrumentos de trabajoinstrumentos de trabajo
instrumentos de trabajo
 
DefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJava
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
DIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdfDIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdf
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Hilos java
Hilos javaHilos java
Hilos java
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
 

Programando en java

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Ejemplo - Temporizador import java.util.*; public class Temporizador extends Thread { private int espera; private List despertables = new ArrayList(); public Temporizador ( int espera ) { this .espera = espera; } public void addDespertable ( Despertable d) { despertables. add (d); } public void removeDespertable ( Despertable d) { despertables. remove (d); } El lenguaje de programación Java
  • 11. Ejemplo - Temporizador public void run () { while (! interrupted ()) { try { Thread.sleep (espera); } catch ( InterruptedException e) { break ; } Iterator it = despertables.iterator(); while (it.hasNext()) { Despertable d = ( Despertable )it.next(); d.despierta(); } } } } El lenguaje de programación Java
  • 12. Ejemplo - Temporizador public interface Despertable { void despierta(); } public class Perezoso implements Despertable { private String nombre; public Perezoso (String nombre) { this .nombre = nombre; } public void despierta () { System.out.println(nombre + ": he sido despertado" ); } } El lenguaje de programación Java
  • 13. Ejemplo - Programa public class Programa { public static void main (String[] args) { Temporizador temp = new Temporizador ( 1000 ); temp.addDespertable( new Perezoso ( "1" )); temp.addDespertable( new Perezoso ( "2" )); temp. start (); //Esperamos 5 sg para interrumpir la alarma try { Thread.sleep( 5000 ); } catch (InterruptedException e) {} temp. interrupt (); // Espero a que termine while (temp. isAlive ()); } } El lenguaje de programación Java
  • 14. Ejemplo- salida del programa El lenguaje de programación Java perezoso.despierta perezoso.despierta perezoso.despierta perezoso.despierta temp.interrupt
  • 15.
  • 16.
  • 17.
  • 18.

Notas del editor

  1. Cuando se crea un objeto de clase Thread, el método run no se llama automáticamente. Se invoca con una llamada a start. NO LLAMAR A RUN DIRECTAMENT, solo a través de start.
  2. public void run(){ .. while (no me pidan que interrumpa && tenga trabajo por hacer){ //trabajar } //termina el método run y por tanto el hilo de ejecución } o bien public void run(){ try{ .. while (!interrupted() && tenga trabajo por hacer){ //trabajar } }catch (InterruptedException e){ //thread was interrupted during sleep or wait } //termina el método run y por tanto el hilo de ejecución }
  3. Etiquetar cualquier operación que no debe ser interrumpida con synchronized