Ayuda con este ejemplo

 

Simular las operaciones que se hacen sobre una cuenta bancaria

 

public class CuentaBanco

{ //–atributo

public static float a_CtaBan;

public CuentaBanco()

{

a_CtaBan=0;

}

//–devuelve el saldo actual de la cuenta

public static float obtenerSaldo()

{

return a_CtaBan;

}

//– actualiza el valor de la cuenta

public static void actualizarSaldo(float nuevoSaldo)

{

a_CtaBan= nuevoSaldo;

}

}

public class Movimiento extends Thread

{

float a_monto;

CuentaBanco a_cta;

int a_tiempo;

public Movimiento(CuentaBanco p_cta, float p_monto, int p_tiempo)

{

a_cta=p_cta;

a_monto=p_monto;

a_tiempo=p_tiempo;

}

public void run()

{

try

{

float saldo= a_cta.obtenerSaldo();//—obtiene saldo anterior

sleep(a_tiempo); //–la cajera cuenta el dinero

saldo=saldo+a_monto; //–obtiene nuevo saldo

a_cta.actualizarSaldo(saldo);

}

catch(InterruptedException e)

{

}

}

}

 

class AppBanco

{

public static void main(String[] arg)

{

CuentaBanco cuenta= new CuentaBanco();

Movimiento abono = new Movimiento(cuenta, 500,400);

Movimiento cargo = new Movimiento(cuenta, -300,300);

abono.start();

cargo.start();

try

{

abono.join();

cargo.join();

}

catch(InterruptedException e)

{

}

System.out.println(“Saldo = “+cuenta.obtenerSaldo());

}

}

 

 

  1. ¿Es correcta la ejecución del programa?, ¿Cuál es la explicación?
  2. Cree varios hilos que abonan y varios que retiran dinero de la cuenta y verifique si hay consistencia en los datos.
  3. Modificar el programa anterior utilizando el algoritmo de Dekker
Preguntada on 12 octubre, 2017 en JAVA.
Agregar Comentario
0 Respuesta(s)

Tu Respuesta

Al publicar tu respuesta, confirmas estar de acuerdo con las políticas de privacidad y términos de servicio.