advertisement

Threads en Java

67 %
33 %
advertisement
Information about Threads en Java

Published on January 3, 2009

Author: javi2401

Source: slideshare.net

Description

Presentación que describe brevemente como crear programas multihilo en Java. Util a la hora de programar juegos
advertisement

Threads

Threads Un thread es un “contexto de ejecución”, proceso ligero o tarea. Dentro de un programa pueden haber varios threads abiertos. Un thread es un proceso ligero en donde hay un flujo secuencial de control y que utiliza los recursos disponibles para un programa. Al ejecutar un programa Java pueden haber varios threads ejecutándose (manejo de eventos, main, ...).

Un thread es un “contexto de ejecución”, proceso ligero o tarea. Dentro de un programa pueden haber varios threads abiertos.

Un thread es un proceso ligero en donde hay un flujo secuencial de control y que utiliza los recursos disponibles para un programa.

Al ejecutar un programa Java pueden haber varios threads ejecutándose (manejo de eventos, main, ...).

Threads

Constructores de la clase Thread

Ciclo de Vida de un Thread

Métodos de la clase Thread void start(): Empieza la ejecución del Thread (hilo). Invoca al método run() de dicho hilo. 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. void stop(): Termina la ejecución del hilo. static void sleep (long millis) : permite que el thread espere determinado tiempo que se especifica en el parámetro (en milisegundos). Da oportunidad a los threads de cualquier prioridad de ejecutarse.

void start(): Empieza la ejecución del Thread (hilo). Invoca al método run() de dicho hilo.

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.

void stop(): Termina la ejecución del hilo.

static void sleep (long millis) : permite que el thread espere determinado tiempo que se especifica en el parámetro (en milisegundos).

Da oportunidad a los threads de cualquier prioridad de ejecutarse.

Métodos de la clase Thread 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. Da oportunidad solamente a threads que tengan igual prioridad de ejecutarse. void suspend(): Se usa para suspender la ejecución de un thread sin marcar un límite de tiempo. public final void resume() : Reanuda la ejecución de un Thread que estaba previamente en estado suspendido. public final boolean isAlive(): Permite conocer si un Thread está vivo, y ha sido iniciado (método start).

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.

Da oportunidad solamente a threads que tengan igual prioridad de ejecutarse.

void suspend(): Se usa para suspender la ejecución de un thread sin marcar un límite de tiempo.

public final void resume() : Reanuda la ejecución de un Thread que estaba previamente en estado suspendido.

public final boolean isAlive(): Permite conocer si un Thread está vivo, y ha sido iniciado (método start).

Métodos de la clase Thread 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. public final int getPriority(): Este método devuelve la prioridad del hilo de ejecución en curso. 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. public final getName(): Este método devuelve el valor actual, del nombre asignado al hilo en ejecución.

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.

public final int getPriority(): Este método devuelve la prioridad del hilo de ejecución en curso.

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.

public final getName(): Este método devuelve el valor actual, del nombre asignado al hilo en ejecución.

Cómo crear Threads? Crear subclase de java.lang.Thread, haciendo overriding del método “run” de la clase “Thread”: public void run() Un ejemplo: un thread para calcular números primos class ThreadDePrimos extends Thread { long primoMinimo; ThreadDePrimos (long primoMinimo) { this.primoMinimo = primoMinimo; } public void run() { // calcular números primos // mayores que primoMinimo } }

Crear subclase de java.lang.Thread, haciendo overriding del método “run” de la clase “Thread”:

public void run()

Un ejemplo: un thread para calcular números primos

class ThreadDePrimos extends Thread {

long primoMinimo;

ThreadDePrimos (long primoMinimo) {

this.primoMinimo = primoMinimo;

}

public void run() {

// calcular números primos

// mayores que primoMinimo

}

}

Cómo crear Threads? class HiloSencillo extends Thread { public HiloSencillo (String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + &quot; &quot; + getName()); try { sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println(“FINAL: &quot; + getName()); } } class EjemploDosHilos { public static void main (String[] args) { new HiloSencillo (“Hola&quot;).start(); new HiloSencillo(“Adios&quot;).start(); } } Ver HiloSencillo.java

class HiloSencillo extends Thread {

public HiloSencillo (String str) {

super(str);

}

public void run() {

for (int i = 0; i < 10; i++) {

System.out.println(i + &quot; &quot; + getName());

try {

sleep((int)(Math.random() * 1000));

} catch (InterruptedException e) {}

}

System.out.println(“FINAL: &quot; + getName());

}

}

class EjemploDosHilos {

public static void main (String[] args) {

new HiloSencillo (“Hola&quot;).start();

new HiloSencillo(“Adios&quot;).start();

}

}

Ver HiloSencillo.java

Otra forma de crear Threads Interfase java.lang.Runnable: public interface Runnable { public void run(); } Dos constructores en java.lang.Thread: Thread(Runnable target) Thread(Runnable target, String nombre) Modo: Crear clase que implemente la interfase java.lang.Runnable. Redefinir el método run en la clase que implemente la interfaz Runnable. Crear un Thread.

Interfase java.lang.Runnable:

public interface Runnable {

public void run();

}

Dos constructores en java.lang.Thread:

Thread(Runnable target)

Thread(Runnable target, String nombre)

Modo:

Crear clase que implemente la interfase java.lang.Runnable.

Redefinir el método run en la clase que implemente la interfaz Runnable.

Crear un Thread.

Ejemplo class HiloSencillo2 implements Runnable { private String nombre; public HiloSencillo2(String str) { this.nombre=str; } public String getName () { return this.nombre; } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + &quot; &quot; + getName()); try { Thread.sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println(&quot;FINAL: &quot; + getName()); } }

class HiloSencillo2 implements Runnable {

private String nombre;

public HiloSencillo2(String str) {

this.nombre=str;

}

public String getName () {

return this.nombre;

}

public void run() {

for (int i = 0; i < 10; i++) {

System.out.println(i + &quot; &quot; + getName());

try {

Thread.sleep((int)(Math.random() * 1000));

} catch (InterruptedException e) {}

}

System.out.println(&quot;FINAL: &quot; + getName());

}

}

Ejemplo public class Ejemplo { public static void main (String[] args) { new Thread(new HiloSencillo2(&quot;Hola&quot;)).start(); new Thread(new HiloSencillo2(&quot;Adios&quot;)).start(); } } Ver EjemploHilo2.java

public class Ejemplo {

public static void main (String[] args) {

new Thread(new HiloSencillo2(&quot;Hola&quot;)).start();

new Thread(new HiloSencillo2(&quot;Adios&quot;)).start();

}

}

Ver EjemploHilo2.java

Add a comment

Related pages

Threads in Java - dpunkt.de

Ein Thread in Java kann aus verschiedenen Sichten charakterisiert werden. Inhaltlich sind einzelne Threads eine in sich sequenzielle Abfolge von ...
Read more

Thread (Java Platform SE 7 ) - Oracle

A thread is a thread of execution in a program. The Java Virtual Machine allows an application to have multiple threads of execution running concurrently.
Read more

Java Standard: Threads – Wikibooks, Sammlung freier Lehr ...

Threads sind Bestandteil des Java-Standardpackages java.lang. Methode 1: Die Thread-Klasse Die Klasse ... Instanz(en) der Thread-Subklasse bilden;
Read more

Exécuter des tâches simultanément - Apprenez à programmer ...

Les threads sont des fils d'exécution de notre programme. Lorsque nous en créons plusieurs, nous pouvons exécuter des tâches simultanément.
Read more

Defining and Starting a Thread (The Java™ Tutorials ...

This Java tutorial describes ... Defining and Starting a Thread. Pausing ... The other methods are invoked from other threads involved in managing the ...
Read more

Introduction to Java threads | JavaWorld

Threads enhance performance and functionality in various programming languages, including Java, by allowing a program to efficiently perform multiple tasks ...
Read more

Multithreading - dpunkt.de

Multithreading ist eines der elementaren Merkmale von Java, das bereits seit Version 1.0 verfügbar war. Die Programmierschnittstelle für Threads ist im ...
Read more

Los Threads en Java - webtaller.com

Qué es un Thread. La Máquina Virtual Java (JVM) es un sistema multi-thread. Es decir, es capaz de ejecutar varias secuencias de ejecución (programas ...
Read more

Hilos/Threads en Java - YouTube

Hilos (Threads) en Java - Duration: 20:15. Raydelto Hernandez 2,132 views. 20:15 Introducción a Semáforos (Concurrencia) - Academia Atica - ...
Read more

Thread (Informatik) – Wikipedia

Ein Prozess bezeichnet den Ablauf eines Computerprogrammes auf einem oder mehreren Prozessor(en). ... Parallele Programmierung mit Java Threads. 1.
Read more