Threads
Threads <ul><li>Un thread es un “contexto de ejecución”, proceso ligero o tarea. Dentro de un programa pueden haber varios...
Threads
Constructores de la clase Thread
Ciclo de Vida de un Thread
Métodos de la clase Thread <ul><li>void start():  Empieza la ejecución del Thread (hilo). Invoca al método run() de dicho ...
Métodos de la clase Thread <ul><li>static void yield ():   permite a los threads que se encuentran en estado listo (runnab...
Métodos de la clase Thread <ul><li>public final void setPriority(int newPriority) : Asigna al hilo la prioridad indicada p...
Cómo crear Threads? <ul><li>Crear subclase de java.lang.Thread, haciendo overriding del método “run” de la clase “Thread”:...
Cómo crear Threads? <ul><li>class HiloSencillo extends Thread { </li></ul><ul><li>public HiloSencillo (String str) { </li>...
Otra forma de crear Threads <ul><li>Interfase java.lang.Runnable: </li></ul><ul><ul><li>public interface Runnable { </li><...
Ejemplo <ul><li>class HiloSencillo2 implements Runnable { </li></ul><ul><li>private String nombre;  </li></ul><ul><li>publ...
Ejemplo <ul><li>public class Ejemplo { </li></ul><ul><li>public static void main (String[] args) { </li></ul><ul><li>new T...
Upcoming SlideShare
Loading in...5
×

Hilos

2,916

Published on

Published in: Technology, Travel
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
2,916
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
88
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Hilos

  1. 1. Threads
  2. 2. Threads <ul><li>Un thread es un “contexto de ejecución”, proceso ligero o tarea. Dentro de un programa pueden haber varios threads abiertos. </li></ul><ul><li>Un thread es un proceso ligero en donde hay un flujo secuencial de control y que utiliza los recursos disponibles para un programa. </li></ul><ul><li>Al ejecutar un programa Java pueden haber varios threads ejecutándose (manejo de eventos, main, ...). </li></ul>
  3. 3. Threads
  4. 4. Constructores de la clase Thread
  5. 5. Ciclo de Vida de un Thread
  6. 6. Métodos de la clase Thread <ul><li>void start(): Empieza la ejecución del Thread (hilo). Invoca al método run() de dicho hilo. </li></ul><ul><li>public void run(): Constituye el cuerpo de un hilo en ejecución. Este es el único método del interfaz Runnable. Es llamado por el método start() después de que el hilo apropiado del sistema se haya inicializado. </li></ul><ul><li>void stop(): Termina la ejecución del hilo. </li></ul><ul><li>static void sleep (long millis) : permite que el thread espere determinado tiempo que se especifica en el parámetro (en milisegundos). </li></ul><ul><ul><li>Da oportunidad a los threads de cualquier prioridad de ejecutarse. </li></ul></ul>
  7. 7. Métodos de la clase Thread <ul><li>static void yield (): permite a los threads que se encuentran en estado listo (runnable) y que tienen la misma prioridad del thread que ejecuta el yield, ejecutarse. </li></ul><ul><ul><li>Da oportunidad solamente a threads que tengan igual prioridad de ejecutarse. </li></ul></ul><ul><li>void suspend(): Se usa para suspender la ejecución de un thread sin marcar un límite de tiempo. </li></ul><ul><li>public final void resume() : Reanuda la ejecución de un Thread que estaba previamente en estado suspendido. </li></ul><ul><li>public final boolean isAlive(): Permite conocer si un Thread está vivo, y ha sido iniciado (método start). </li></ul>
  8. 8. Métodos de la clase Thread <ul><li>public final void setPriority(int newPriority) : Asigna al hilo la prioridad indicada por el valor pasado como parámetro. Hay bastantes constantes predefinidas para la prioridad, definidas en la clase Thread , tales como MIN_PRIORITY, NORM_PRIORITY y MAX_PRIORITY, que toman los valores 1, 5 y 10, respectivamente. </li></ul><ul><li>public final int getPriority(): Este método devuelve la prioridad del hilo de ejecución en curso. </li></ul><ul><li>public final void setName( String ): Este método permite identificar al hilo con un nombre. De esta manera se facilita la depuración de programas multihilo. </li></ul><ul><li>public final getName(): Este método devuelve el valor actual, del nombre asignado al hilo en ejecución. </li></ul>
  9. 9. Cómo crear Threads? <ul><li>Crear subclase de java.lang.Thread, haciendo overriding del método “run” de la clase “Thread”: </li></ul><ul><ul><li>public void run() </li></ul></ul><ul><li>Un ejemplo: un thread para calcular números primos </li></ul><ul><ul><ul><ul><li>class ThreadDePrimos extends Thread { </li></ul></ul></ul></ul><ul><ul><ul><ul><li>long primoMinimo; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ThreadDePrimos (long primoMinimo) { </li></ul></ul></ul></ul><ul><ul><ul><ul><li>this.primoMinimo = primoMinimo; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>} </li></ul></ul></ul></ul><ul><ul><ul><ul><li>public void run() { </li></ul></ul></ul></ul><ul><ul><ul><ul><li>// calcular números primos </li></ul></ul></ul></ul><ul><ul><ul><ul><li> // mayores que primoMinimo </li></ul></ul></ul></ul><ul><ul><ul><ul><li> } </li></ul></ul></ul></ul><ul><ul><ul><ul><li>} </li></ul></ul></ul></ul>
  10. 10. Cómo crear Threads? <ul><li>class HiloSencillo extends Thread { </li></ul><ul><li>public HiloSencillo (String str) { </li></ul><ul><li>super(str); </li></ul><ul><li>} </li></ul><ul><li>public void run() { </li></ul><ul><li>for (int i = 0; i < 10; i++) { </li></ul><ul><li>System.out.println(i + &quot; &quot; + getName()); </li></ul><ul><li>try { </li></ul><ul><li>sleep((int)(Math.random() * 1000)); </li></ul><ul><li>} catch (InterruptedException e) {} </li></ul><ul><li>} </li></ul><ul><li>System.out.println(“FINAL: &quot; + getName()); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>class EjemploDosHilos { </li></ul><ul><li>public static void main (String[] args) { </li></ul><ul><li>new HiloSencillo (“Hola&quot;).start(); </li></ul><ul><li>new HiloSencillo(“Adios&quot;).start(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>Ver HiloSencillo.java </li></ul>
  11. 11. Otra forma de crear Threads <ul><li>Interfase java.lang.Runnable: </li></ul><ul><ul><li>public interface Runnable { </li></ul></ul><ul><ul><li> public void run(); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>Dos constructores en java.lang.Thread: </li></ul><ul><ul><li>Thread(Runnable target) </li></ul></ul><ul><ul><li>Thread(Runnable target, String nombre) </li></ul></ul><ul><li>Modo: </li></ul><ul><ul><li>Crear clase que implemente la interfase java.lang.Runnable. </li></ul></ul><ul><ul><li>Redefinir el método run en la clase que implemente la interfaz Runnable. </li></ul></ul><ul><ul><li>Crear un Thread. </li></ul></ul>
  12. 12. Ejemplo <ul><li>class HiloSencillo2 implements Runnable { </li></ul><ul><li>private String nombre; </li></ul><ul><li>public HiloSencillo2(String str) { </li></ul><ul><li>this.nombre=str; </li></ul><ul><li>} </li></ul><ul><li>public String getName () { </li></ul><ul><li>return this.nombre; </li></ul><ul><li>} </li></ul><ul><li>public void run() { </li></ul><ul><li>for (int i = 0; i < 10; i++) { </li></ul><ul><li>System.out.println(i + &quot; &quot; + getName()); </li></ul><ul><li>try { </li></ul><ul><li>Thread.sleep((int)(Math.random() * 1000)); </li></ul><ul><li>} catch (InterruptedException e) {} </li></ul><ul><li>} </li></ul><ul><li>System.out.println(&quot;FINAL: &quot; + getName()); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  13. 13. Ejemplo <ul><li>public class Ejemplo { </li></ul><ul><li>public static void main (String[] args) { </li></ul><ul><li>new Thread(new HiloSencillo2(&quot;Hola&quot;)).start(); </li></ul><ul><li>new Thread(new HiloSencillo2(&quot;Adios&quot;)).start(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>Ver EjemploHilo2.java </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×