Documentos de Académico
Documentos de Profesional
Documentos de Cultura
}
}
catch(InterruptedException e) {
return;
}
}
public static void main(String[] args) {
Runnable ping = new RunPingPONG("ping", 40);
Runnable PONG = new RunPingPONG("PONG", 50);
new Thread(ping).start();
new Thread(PONG).start();
}
}
Existen cuatro constructores para crear hilos usando la interfaz Runnable.
public Thread(Runnable target)
public Thread(Runnable target, String name)
public Thread(ThreadGroup group, Runnable target)
public Thread(ThreadGroup group, Runnable target, String name)
La interfaz Runnable exige solamente el mtodo run(), sin embargo,
normalmente se implementan ms mtodos para crear un servicio completo
que este hilo debe cumplir.
Aunque no hemos guardado las referencias de los hilos en unas variables,
los hilos no caen en las manos del recolector de memoria: siempre se
mantiene una referencia al hilo en su grupo al cual pertenece.
El mtodo run() es pblico y en muchos casos, implementando algn tipo de
servicio, no se quiere dar permiso a otros ejecutar directamente el mtodo
run(). Para evitar eso se puede recurrir a la siguiente construccin:
class Service {
private Queue requests = new Queue();
public Service() {
Runnable service = new Runnable() {
public void run() {
for(;;) realService((Job)requests.take());
}
};
new Thread(service).start();
}
public void AddJob(Job job) {
requests.add(job);
}
private void realService(Job job) {
// do the real work
}
}
Sobrescritura Del Mtodo Run
El mtodo run() de la clase Thread proporciona la base para la definicin de
las tareas, de modo que el cdigo asociado a cada una de ellas tendr que
estar definido en el interior de este mtodo.
Si las tareas que vamos a implementar van a realizar funciones diferentes,
deberemos crear tantas subclases de Thread como tareas, codificando en el
mtodo run() de cada una de las instrucciones a ejecutar por cada tarea.
Si todas las tareas van a realizar el mismo proceso, como, por ejemplo,
atender las solicitudes que realizan los usuarios de Internet a un sitio web,
bastar con definir una nica clase con un mtodo run() comn.
El cdigo de las dos subclases de Thread donde se definen las tareas es el
siguiente:
public class Tarea1 extends Thread
{
public void run()
{
for (int i=1; i<=100;i++)
System.out.println("Numero: " + i);
}
}
public class Tarea2 extends Thread
{
public void run()
{
for (int i=-1; i<=-100;i--)
System.out.println("Numero: " + i);
}
}
http://formella.webs.uvigo.es/doc/cd02/node44.html
http://kimeraweb.com.es/java/tema54.php