Quería imprimir 100 como salida en el siguiente programa.¿Qué hacer para imprimir 100?
Obtengo 0 como respuesta.
class s extends Thread{
int j=0;
public void run() {
try{Thread.sleep(5000);}
catch(Exception e){}
j=100;
}
public static void main(String args[])
{
s t1=new s();
t1.start();
System.out.println(t1.j);
}
}
también, y me corrija si estoy equivocado gurús, en vez que acceder directamente a la variable de la "clase s", debe incluir un método de acceso para imprimir el valor de j. –
@The Ox: Esa sería una buena práctica. Más importante aquí es sincronizar el acceso a 'j' (o declararlo' volátil'). Es posible (aunque poco probable) que el hilo principal pueda ver un valor obsoleto de 'j' incluso después de que la hebra' s' haya terminado de escribir en él. Consulte el libro de Brian Goetz "Concurrencia de Java en la práctica" para obtener una buena explicación de por qué esto es cierto. –