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(); } } }