codice:
class Banca {
private int[] conti;
public void synchronized trasferisci(int da, int a, int cifra) {
while (cifra > conti[da])
try {
wait();
}
catch (InterruptedException e){}
conti[da] -= cifra;
conti[a] += cifra;
notifyAll();
}
..............
}
Si assuma di avere una Banca b i cui conti hanno ciascuno un saldo iniziale di 100, e tre thread, th1, th2 e th3, che eseguono rispettivamente b.trasferisci(7,8,200), b.trasferisci(4,7,120) e b.trasferisci(9,4,30).
Dare la traccia dell'esecuzione assumendo che il thread th1 abbia priorità su th2, e il thread th2 su th3.
Parte th1 e va in wait (200>100), poi parte th2 e va in wait (120>100) ora mi domando può partire ed eseguire il proprio metodo th3???? Se sì esegue termina e poi parte th2 giusto???