Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro Foro antiguo sobre java

feed Foro Foro antiguo sobre java Foro: Foro antiguo sobre java

problema con hilos 31/01/2003 00:00
viejo-foro Que tal!!
tengo un problema con hilos (lo que pasa es que recien estoy en esto).
Yo quiero haecr un programita que cada ves que presione un boton se ejecute un hilo (hilo1), pero si presiono otra vez el boton deberia arrancar otro hilo (hilo2), despues de que el HILO1 termine su ejecucion, y asi sucesivamente.

Yo se que no tengo que crear N hilos cada vez que presiono el boton, el problema es que no se como hacerlo.

Si tienen una ayudita, por favor se los agradeceria demasiado.

Franklin
#unapprove_message#
Re: problema con hilos 01/02/2003 00:00
viejo-foro Uff, Franklin ¿sabes lo que estas pidiendo? Pues aqui lo tienes pero ten cuidado que meterse en estos terrenos sin tener base en el tema de concurrencia es sumamente peligroso.

Pulsa repetidamente el boton y podras ver como los hilos, que forman una especie de lista enlazada, se esperan unos a otros.

import java.awt.*;
import java.awt.event.*;

public class Hilando extends Frame implements ActionListener
Hilillo ultimo;
int contador;
Button b = new Button("Pulsa");
Hilando() {
add(b);
b.addActionListener(this);
pack();
setVisible(true);
{}
public void actionPerformed(ActionEvent ev)
Hilillo h = new Hilillo(ultimo,contador);
ultimo = h;
h.start();
b.setLabel("Se han lanzado "+(++contador));
{}
public static void main(String [] args)
new Hilando();
{}
}

class Hilillo extends Thread
Hilillo esperado;
int id;
Hilillo(Hilillo e, int i) {
esperado = e;
id = i;
{}
public void run()
if (esperado !=null && esperado.isAlive()) {
synchronized(esperado) {
System.out.println("Soy el Hilillo "+id+" y debo esperar");
try { esperado.wait();{} catch (InterruptedException ex) {}
}
}
System.out.println("Soy el Hilillo "+id+" y por fin puedo tomar el control");
for (int j=0;j<100;j++)
System.out.println(" Soy el Hilillo "+id+" interando "+j);
try {sleep(100);{}catch (InterruptedException ex) {}
}
synchronized(this)
System.out.println("Soy el Hilillo "+id+",si hay alguien a la espera que sepa ya he terminado");
this.notify();
{}
}
}

Ten cuidado Franklin. Suerte.
Un saludo.
#unapprove_message#
Este foro no acepta nuevos mensajes.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano