Necesito definir una variable compartida en el método main() de mi clase Principal. Necesito dos hilos para poder acceder a esa variable compartida. Estoy creando los hilos implementando la interfaz Runnable e implementando el método abstract run() de la interfaz. ¿Cómo me refiero a la variable compartida definida en el método main() de la clase Main desde el método run() definido en mi clase que implementa la interfaz Runnable? Obviamente, simplemente llamarlos por su nombre no funciona, ya que parecen estar fuera del alcance de mi clase Runnable.accediendo a la variable compartida desde dentro de una clase Ejecutable
EDITAR - disculpas, aquí es un ejemplo sencillo
public Class DoThread implements Runnable {
public void run(){
sharedVar += 1
}
}
y en un archivo .class separados:
public Class Main {
public static void main(String[] args) {
int sharedVar = 0;
Thread t1 = new Thread(new DoThread());
Thread t2 = new Thread(new DoThread());
t1.start();
t2.start();
t1.join();
t2.join();
}
}
Así que debo estar creando un objeto para almacenar el var compartido y luego pasando ese objeto a ambos constructores DoThread() al crear los hilos? A veces me confundo cuando java pasa por ref o pasa por var, de modo que si lo hago de esta manera, t2 verá los cambios a la var compartida por t1?
¿Podría publicar su código? – SJuan76
Siempre intenta publicar un [SSCCE] (http://sscce.org/). –