Cita de: klaine en 20 Junio 2011, 01:39 AM
Heredo de Thread e implemento Runnable para no instanciar Thread y pasarle la instancia de la subclase de Runnable como argumento, no se como hacerlo de otra forma xD
Pues heredas de Thread directamente, implementas el método
Código (javascript) [Seleccionar]
public void run()
y luego creas un objeto de tu clase y se lo asignas a un Thread. Por ejemplo imaginate que creas esta clase:Código (javascript) [Seleccionar]
public class HiloSumador extends Thread{
private String identificador;
private int cantidad;
public HiloSumador(String id){
identificador = id;
cantidad = 0;
}
public void run(){
for(int i = 0;i<20;i++)
cantidad++;
System.out.println("La suma es: "+cantidad);
}
public static void main(String[] args){
Thread hilo1 = new HiloSumador("Hilo1");
hilo1.start();
}
}
A la hora de crear los objetos lo haces así:
Thread hilo1 = new HiloSumador("Hilo1");
y con eso ya lo tienes hecho.
Cita de: klaine en 20 Junio 2011, 01:39 AM
pero lo que no entendi fue lo de los cerrojos xD
"Cerrojo" es un poco la terminología, con eso lo que se quiere decir es que ese objeto actúa como si fuese una cerradura, solo deja pasar a un hilo al mismo tiempo.
Espero te sirva. Saludos.
Te vuelvo a insistir, con un semáforo se controla mejor (o por lo menos a mi me parece más sencillo de entender) que con Synchronized. Si quieres saber algo más del tema pregunta!.