Programación del monto de retiro

Esto requiere enhebrado.

Este es el código

//Tipo de banco

Banco de tipo público

{

Privado extremo de period double[ ]Cuentas;

Banco Público (int n, double initBalance)

{

cuentas = new double[n];

for (int I = 0; i<accounts.length;i++)

{

cuentas[I]= saldo inicial;

}

}

La transferencia nula sincrónica pública (int desde, int hasta, cantidad doble) arroja InterruptedException

{

if(cuenta[desde]& lt ;Cantidad)

{

espera();

}

sistema fuera . ;

Cuenta [de] -=Monto;

system out . printf(" % 10.2 f de % d a % d ", monto, de, a p>

Cuenta[de]+=monto;

sistema . printf(" Saldo total:% 10.2 f % n ", getTotalBalance()

<); p> notificar a todos();

}

Objeto de sincronización privado getTotalBalance()

{

doble suma = 0;

Para (cuentas duales)

{

suma+= AC;

}

Devolver la suma;

}

public int size()

{

Devolver cuenta.

Longitud;

}

}

//Función de subproceso

La clase pública TransferRunnable implementa Runnable

{

Int privado deAc

Amt máximo doble privado

Retraso de int privado = 10;

Transferencia pública ejecutable (BancoBanco, int deAC, doble importe máximo )

{

super();

this.bank = banco

this.fromAc = fromAc

this.maxAmt = maxAmt

}

@override

public void run()

{

while(true)

{

intenta

{

int toAc =(int)(banco . size()* math . random());

doble AMT = maxAmt * math . random();

Transferencia bancaria (deAc, aAc, AMT);

hilo dormido. ((int)(delay * math . random());

}

catch (interrupción excepción e)

{

//TODO bloque de captura generado automáticamente

e.printstacktrace();

}

}

}

}

//Tipo de prueba

Examen de curso público

{

/**

* @ param args

*/

Public static void main(String[] args)

{

banco b = nuevo banco(10 ,10000);

for(int i = 0;i<10;i++)

{

TransferRunnable r = new TransferRunnable(b, 0, 10000);

Hilo t = nuevo hilo(r);

t .

}

}

<. p>}

="text/javascript" src="../css/tongji.js">