import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.locks.Condition;
class Bankkonto{
int saldo;
Lock saldoLaas = new ReentrantLock();
Condition ingenPenger = saldoLaas.newCondition();
public void settInnPenger(int sum){
saldoLaas.lock();
try {
saldo += sum;
ingenPenger.signalAll();
System.out.println("Har fyllt p? penger, saldo er n?: " + saldo);
} catch(Exception e) {
System.out.println("Feil i settInnPenger");
} finally {
saldoLaas.unlock();
}
}
public void taUtPenger(int sum){
saldoLaas.lock();
try {
while (sum > saldo){
System.out.println("Ingen penger, venter...");
ingenPenger.await();
}
saldo -= sum;
System.out.println("Har tatt ut penger, saldo er n?: " + saldo);
} catch(Exception e) {
System.out.println("feil i taUtPenger");
} finally {
saldoLaas.unlock();
}
}
}